<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學(xué)___________________歡迎艷兒的加入

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    VB C# 語(yǔ)法對(duì)比圖 (代碼實(shí)例)

    [字體: ]

    C#和VB.net的語(yǔ)法相差還是比較大的. 可能你會(huì)C#,可能你會(huì)VB.

    將它們倆放在一起對(duì)比一下你就會(huì)很快讀懂,并掌握另一門(mén)語(yǔ)言.

    相信下面這張圖會(huì)對(duì)你幫助很大.

     

    Comments

    VB.NET

     

    'Single line only
    Rem Single line only

     

    C#

    // Single line
    /* Multiple
    line */
    /// XML comments on single line
    /** XML comments on multiple lines */

    Data Types

    VB.NET

     

    'Value Types
    Boolean
    Byte
    Char (example: "A")
    Short, Integer, Long
    Single, Double
    Decimal
    Date 
    
    
    'Reference Types
    Object
    String
    
    
    
    Dim x As Integer
    System.Console.WriteLine(x.GetType())
    System.Console.WriteLine(TypeName(x)) 
    
    
    'Type conversion
    Dim d As Single = 3.5
    Dim i As Integer = CType (d, Integer)
    i = CInt (d)
    i = Int(d)

     

    C#

     

    //Value Types
    bool
    byte, sbyte
    char (example: 'A')
    short, ushort, int, uint, long, ulong
    float, double
    decimal
    DateTime 
    
    
    //Reference Types
    object
    string
    
    
    
    int x;
    Console.WriteLine(x.GetType())
    Console.WriteLine(typeof(int)) 
    
    
    //Type conversion
    float d = 3.5;
    int i = (int) d

     

    Constants

    VB.NET

    Const MAX_AUTHORS As Integer = 25
    ReadOnly MIN_RANK As Single = 5.00

    C#

    const int MAX_AUTHORS = 25;
    readonly float MIN_RANKING = 5.00;

    Enumerations

    VB.NET

    Enum Action
      Start
      'Stop is a reserved word
    [Stop]
      Rewind
      Forward
    End Enum
    
    Enum Status
       Flunk = 50
       Pass = 70
       Excel = 90
    End Enum
    
    Dim a As Action = Action.Stop 
    If a <> Action.Start Then _
    'Prints "Stop is 1" 
       System.Console.WriteLine(a.ToString & " is " & a)
    
    'Prints 70
    System.Console.WriteLine(Status.Pass)
    'Prints Pass
    System.Console.WriteLine(Status.Pass.ToString())

    C#

    enum Action {Start, Stop, Rewind, Forward};
    enum Status {Flunk = 50, Pass = 70, Excel = 90};
    
    
    
    
    
    
    
    
    
    
    
    Action a = Action.Stop;
    if (a != Action.Start)
    //Prints "Stop is 1"
      System.Console.WriteLine(a + " is " + (int) a); 
    
    // Prints 70
    System.Console.WriteLine((int) Status.Pass); 
    // Prints Pass
    System.Console.WriteLine(Status.Pass);

    Operators

    VB.NET

     

    'Comparison
    =  <  >  <=  >=  <> 
    
    
    'Arithmetic
    +  -  *  /
    Mod
      (integer division)
    ^  (raise to a power) 
    
    
    'Assignment
    =  +=  -=  *=  /=  =  ^=  <<=  >>=  &= 
    
    
    'Bitwise
    And  AndAlso  Or  OrElse  Not  <<  >> 
    
    
    'Logical
    And  AndAlso  Or  OrElse  Not 
    
    
    'String Concatenation
    & 

     

    C#

     

    //Comparison
    ==  <  >  <=  >=  != 
    
    
    //Arithmetic
    +  -  *  /
    %  (mod)
    /  (integer division if both operands are ints)
    Math.Pow(x, y) 
    
    
    //Assignment
    =  +=  -=  *=  /=   %=  &=  |=  ^=  <<=  >>=  ++  -- 
    
    
    //Bitwise
    &  |  ^   ~  <<  >> 
    
    
    //Logical
    &&  ||   ! 
    
    
    //String Concatenation
    +

     

    Choices

    VB.NET

     

    greeting = IIf(age < 20, "What's up?", "Hello") 
    
    
    'One line doesn't require "End If", no "Else"
    If language = "VB.NET" Then langType = "verbose" 
    
    
    'Use: to put two commands on same line
    If x <> 100 And y < 5 Then x *= 5 : y *= 2   
    
    
    'Preferred
    If x <> 100 And y < 5 Then
      x *= 5
      y *= 2
    End If 
    
    
    
    
    'or to break up any long single command use _
    If henYouHaveAReally < longLine And _ 
    itNeedsToBeBrokenInto2   > Lines  Then _
      UseTheUnderscore(charToBreakItUp) 
    
    
    If x > 5 Then
      x *= y 
    ElseIf x = 5 Then
      x += y 
    ElseIf x < 10 Then
      x -= y
    Else
      x /= y
    End If 
    
    
    'Must be a primitive data type
    Select Case color   
      Case "black", "red"
        r += 1
      Case "blue"
        b += 1
      Case "green"
        g += 1
      Case Else
        other += 1
    End Select

     

    C#

     

    greeting = age < 20 ? "What's up?" : "Hello"; 
    
    
    
    
    
    
    
    
    
    
    
    if (x != 100 && y < 5)
    {
      // Multiple statements must be enclosed in {}
      x *= 5;
      y *= 2;
    } 
    
    
    
    
    
    
    
    
    if (x > 5) 
      x *= y; 
    else if (x == 5) 
      x += y; 
    else if (x < 10) 
      x -= y; 
    else 
      x /= y;
    
    
    
    //Must be integer or string
    switch (color)
    {
      case "black":
      case "red":    r++;
       break;
      case "blue"
       break;
      case "green": g++;  
       break;
      default:    other++;
       break;
    }

     

    Loops

    VB.NET

     

    'Pre-test Loops:
    While c < 10
      c += 1
    End While Do Until c = 10
      c += 1
    Loop 
    
    
    'Post-test Loop:
    Do While c < 10
      c += 1
    Loop 
    
    
    For c = 2 To 10 Step 2
      System.Console.WriteLine(c)
    Next 
    
    
    
    'Array or collection looping
    Dim names As String() = {"Steven", "SuOk", "Sarah"}
    For Each s As String In names
      System.Console.WriteLine(s)
    Next

     

    C#

    //Pre-test Loops: while (i < 10)
      i++;
    for (i = 2; i < = 10; i += 2)
      System.Console.WriteLine(i); 
    
    
    
    
    
    
    //Post-test Loop:
    do
      i++;
    while (i < 10);
    
    
    
    
    
    
    
    
    // Array or collection looping
    string[] names = {"Steven", "SuOk", "Sarah"};
    foreach (string s in names)
      System.Console.WriteLine(s);

     

    Arrays

    VB.NET

     

    Dim nums() As Integer = {1, 2, 3}
    For i As Integer = 0 To nums.Length - 1 
      Console.WriteLine(nums(i)) 
    Next 
    
    '4 is the index of the last element, so it holds 5 elements
    Dim names(4) As String
    names(0) = "Steven"
    'Throws System.IndexOutOfRangeException
    names(5) = "Sarah"
    
    
    'Resize the array, keeping the existing
    'values (Preserve is optional)
    ReDim Preserve names(6)
    
    
    
    
    
    Dim twoD(rows-1, cols-1) As Single 
    twoD(2, 0) = 4.5
    
    
    Dim jagged()() As Integer = { _
      New Integer(4) {}, New Integer(1) {}, New Integer(2) {} }
    jagged(0)(4) = 5

     

    C#

     

    int[] nums = {1, 2, 3};
    for (int i = 0; i < nums.Length; i++)
      Console.WriteLine(nums[i]);
    
    
    // 5 is the size of the array
    string[] names = new string[5];
    names[0] = "Steven";
    // Throws System.IndexOutOfRangeException
    names[5] = "Sarah"
    
    
    // C# can't dynamically resize an array.
    //Just copy into new array.
    string[] names2 = new string[7];
    // or names.CopyTo(names2, 0);
    Array.Copy(names, names2, names.Length); 
    
    
    
    float[,] twoD = new float[rows, cols];
    twoD[2,0] = 4.5; 
    
    
    int[][] jagged = new int[3][] {
      new int[5], new int[2], new int[3] };
    jagged[0][4] = 5;

     

    Functions

    VB.NET

     

    'Pass by value (in, default), reference
    '(in/out), and reference (out)
    Sub TestFunc(ByVal x As Integer, ByRef y As Integer,
    ByRef z As Integer)
      x += 1
      y += 1
      z = 5
    End Sub 
    
    
    'c set to zero by default
    
    Dim a = 1, b = 1, c As Integer
    TestFunc(a, b, c)
    System.Console.WriteLine("{0} {1} {2}", a, b, c) '1 2 5 
    
    
    'Accept variable number of arguments
    Function Sum(ByVal ParamArray nums As Integer()) As Integer
      Sum = 0
      For Each i As Integer In nums
        Sum += i
      Next
    End Function 'Or use a Return statement like C#
    
    Dim total As Integer = Sum(4, 3, 2, 1) 'returns 10 
    
    
    'Optional parameters must be listed last
    'and must have a default value
    Sub SayHello(ByVal name As String,
    Optional ByVal prefix As String = "")
      System.Console.WriteLine("Greetings, " & prefix
    & " " & name)
    End Sub
    
    
    SayHello("Steven", "Dr.")
    SayHello("SuOk")

     

    C#

    // Pass by value (in, default), reference
    //(in/out), and reference (out)
    void TestFunc(int x, ref int y, out int z) {
      x++;
      y++;
      z = 5;
    } 
    
    
    
    
    int a = 1, b = 1, c; // c doesn't need initializing
    TestFunc(a, ref b, out c);
    System.Console.WriteLine("{0} {1} {2}", a, b, c); // 1 2 5 
    
    
    // Accept variable number of arguments
    int Sum(params int[] nums) {
      int sum = 0;
      foreach (int i in nums)
        sum += i;
      return sum;
    } 
    
    
    int total = Sum(4, 3, 2, 1); // returns 10 
    
    
    /* C# doesn't support optional arguments/parameters.
    Just create two different versions of the same function. */
    void SayHello(string name, string prefix) {
      System.Console.WriteLine("Greetings, " 
    + prefix + " " + name); } void SayHello(string name) {   SayHello(name, ""); }

     

    Exception Handling

    VB.NET

     

    'Deprecated unstructured error handling
    On Error GoTo MyErrorHandler
    ...
    MyErrorHandler: System.Console.WriteLine(Err.Description)
    
    Dim ex As New Exception("Something has really gone wrong.")
    Throw ex 
    
    
    Try
      y = 0
      x = 10 / y
    Catch ex As Exception When y = 0 'Argument and When is optional
      System.Console.WriteLine(ex.Message) 
    Finally
      DoSomething() 
    End Try

     

    C#





    Exception up = new Exception("Something is really wrong."); 
    throw up; // ha ha 
    
    
    try{
      y = 0;
      x = 10 / y;
    }
    catch (Exception ex) { //Argument is optional, no "When" keyword
      Console.WriteLine(ex.Message);
    }
    finally{
      // Do something
    }

     

    Namespaces

    VB.NET

     

    Namespace ASPAlliance.DotNet.Community
      ...
    End Namespace 
    
    
    'or 
    
    
    Namespace ASPAlliance 
      Namespace DotNet
        Namespace Community
          ...
        End Namespace
      End Namespace
    End Namespace 
    
    
    Imports ASPAlliance.DotNet.Community

     

    C#

     

    namespace ASPAlliance.DotNet.Community {
      ...
    } 
    
    
    // or 
    
    
    namespace ASPAlliance {
      namespace DotNet {
        namespace Community {
          ...
        }
      }
    } 
    
    
    using ASPAlliance.DotNet.Community;

     

    Classes / Interfaces

    VB.NET

     

    'Accessibility keywords
    Public
    Private
    Friend
    Protected
    Protected Friend
    Shared 
    
    
    'Inheritance
    Class Articles
      Inherits Authors
      ...
    End Class 
    
    
    'Interface definition
    Interface IArticle 
      ...
    End Interface 
    
    
    'Extending an interface
    Interface IArticle
      Inherits IAuthor
      ...
    End Interface 
    
    
    'Interface implementation</span>
    Class PublicationDate
      Implements</strong> IArticle, IRating
       ...
    End Class

     

    C#

     

    //Accessibility keywords
    public
    private
    internal
    protected
    protected internal
    static 
    
    
    //Inheritance
    class Articles: Authors {
      ...
    } 
    
    
    
    //Interface definition
    interface IArticle {
      ...
    } 
    
    
    //Extending an interface
    interface IArticle: IAuthor {
      ...
    } 
    
    
    
    //Interface implementation
    class PublicationDate: IArticle, IRating {
       ...
    }

     

    Constructors / Destructors

    VB.NET

    Class TopAuthor
      Private _topAuthor As Integer
    
      Public Sub New()
        _topAuthor = 0
      End Sub
    
      Public Sub New(ByVal topAuthor As Integer)
        Me._topAuthor = topAuthor
      End Sub
    
      Protected Overrides Sub Finalize()
       'Desctructor code to free unmanaged resources
        MyBase.Finalize() 
      End Sub
    End Class

    C#

     

    class TopAuthor {
      private int _topAuthor;
    
      public TopAuthor() {
         _topAuthor = 0;
      }
    
      public TopAuthor(int topAuthor) {
        this._topAuthor= topAuthor
      }
    
      ~TopAuthor() {
        // Destructor code to free unmanaged resources.
        // Implicitly creates a Finalize method
      }
    }

     

    Objects

    VB.NET

     

    Dim author As TopAuthor = New TopAuthor
    With author
      .Name = "Steven"
      .AuthorRanking = 3
    End With
    
    author.Rank("Scott")
    author.Demote() 'Calling Shared method
    'or
    TopAuthor.Rank() 
    
    
    Dim author2 As TopAuthor = author 'Both refer to same object
    author2.Name = "Joe"
    System.Console.WriteLine(author2.Name) 'Prints Joe 
    
    
    author = Nothing 'Free the object 
    
    
    If author Is Nothing Then _
      author = New TopAuthor 
    
    
    Dim obj As Object = New TopAuthor
    If TypeOf obj Is TopAuthor Then _
      System.Console.WriteLine("Is a TopAuthor object.")

     

    C#

     

    TopAuthor author = new TopAuthor();
    
    //No "With" construct
    author.Name = "Steven";
    author.AuthorRanking = 3; 
    
    
    author.Rank("Scott");
    TopAuthor.Demote() //Calling static method 
    
    
    
    
    TopAuthor author2 = author //Both refer to same object
    author2.Name = "Joe";
    System.Console.WriteLine(author2.Name) //Prints Joe 
    
    
    author = null //Free the object 
    
    
    if (author == null)
      author = new TopAuthor(); 
    
    
    Object obj = new TopAuthor(); 
    if (obj is TopAuthor)
      SystConsole.WriteLine("Is a TopAuthor object.");

     

    Structs

    VB.NET

     

    Structure AuthorRecord
      Public name As String
      Public rank As Single
    
      Public Sub New(ByVal name As String, ByVal rank As Single) 
        Me.name = name
        Me.rank = rank
      End Sub
    End Structure 
    
    
    Dim author As AuthorRecord = New AuthorRecord("Steven", 8.8)
    Dim author2 As AuthorRecord = author
    
    author2.name = "Scott"
    System.Console.WriteLine(author.name) 'Prints Steven
    System.Console.WriteLine(author2.name) 'Prints Scott

     

    C#

    struct AuthorRecord {
      public string name;
      public float rank;
    
      public AuthorRecord(string name, float rank) {
        this.name = name;
        this.rank = rank;
      }
    }
    
    
    
    AuthorRecord author = new AuthorRecord("Steven", 8.8);
    AuthorRecord author2 = author
    
    author.name = "Scott";
    SystemConsole.WriteLine(author.name); //Prints Steven
    System.Console.WriteLine(author2.name); //Prints Scott

     

    Properties

    VB.NET

     

    Private _size As Integer
    
    Public Property Size() As Integer
      Get
        Return _size
      End Get
      Set (ByVal Value As Integer)
        If Value < 0 Then
          _size = 0
        Else
          _size = Value
        End If
      End Set
    End Property 
    
    
    foo.Size += 1

     

    C#

    private int _size;
    
    public int Size {
      get {
        return _size;
      }
      set {
        if (value < 0)
          _size = 0;
        else
          _size = value;
      }
    } 
    
    
    
    foo.Size++;

     

    Delegates / Events

    VB.NET

     

    Delegate Sub MsgArrivedEventHandler(ByVal message
    As String) 
    
    
    Event MsgArrivedEvent As MsgArrivedEventHandler 
    
    
    'or to define an event which declares a
    'delegate implicitly
    Event MsgArrivedEvent(ByVal message As String) 
    
    
    AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback
    'Won't throw an exception if obj is Nothing
    RaiseEvent MsgArrivedEvent("Test message")
    RemoveHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback
    
    
    
    Imports System.Windows.Forms 
    
    
    'WithEvents can't be used on local variable
    Dim WithEvents MyButton As Button
    MyButton = New Button 
    
    
    Private Sub MyButton_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles MyButton.Click
      MessageBox.Show(Me, "Button was clicked", "Info", _
        MessageBoxButtons.OK, MessageBoxIcon.Information)
    End Sub

     

    C#

     

    delegate void MsgArrivedEventHandler(string message); 
    
    
    event MsgArrivedEventHandler MsgArrivedEvent; 
    
    
    //Delegates must be used with events in C#
    
    
    MsgArrivedEvent += new MsgArrivedEventHandler
      (My_MsgArrivedEventCallback);
    //Throws exception if obj is null
    MsgArrivedEvent("Test message");
    MsgArrivedEvent -= new MsgArrivedEventHandler
      (My_MsgArrivedEventCallback); 
    
    
    
    using System.Windows.Forms; 
    
    
    Button MyButton = new Button();
    MyButton.Click += new System.EventHandler(MyButton_Click); 
    
    
    private void MyButton_Click(object sender, 
    System.EventArgs e) {   MessageBox.Show(this, "Button was clicked", "Info",     MessageBoxButtons.OK, MessageBoxIcon.Information); }

     

    Console I/O

    VB.NET

     

    'Special character constants
    vbCrLf, vbCr, vbLf, vbNewLine
    vbNullString
    vbTab
    vbBack
    vbFormFeed
    vbVerticalTab
    ""
    Chr(65) 'Returns 'A' 
    
    
    System.Console.Write("What's your name? ")
    Dim name As String = System.Console.ReadLine()
    System.Console.Write("How old are you? ")
    Dim age As Integer = Val(System.Console.ReadLine())
    System.Console.WriteLine("{0} is {1} years old.", name, age)
    'or
    System.Console.WriteLine(name & " is " & age & " years old.")
    
    Dim c As Integer
    c = System.Console.Read() 'Read single char
    System.Console.WriteLine(c) 'Prints 65 if user enters "A"

     

    C#

     

    //Escape sequences
    n, r
    t
    
     
    
    
    Convert.ToChar(65) 
    //Returns 'A' - equivalent to Chr(num) in VB // or (char) 65 System.Console.Write("What's your name? "); string name = SYstem.Console.ReadLine(); System.Console.Write("How old are you? "); int age = Convert.ToInt32(System.Console.ReadLine()); System.Console.WriteLine("{0} is {1} years old.",
    name, age); //or System.Console.WriteLine(name + " is " +
    age + " years old."); int c = System.Console.Read(); //Read single char System.Console.WriteLine(c);
    //Prints 65 if user enters "A"

     

    File I/O

    VB.NET

     

    Imports System.IO 
    
    
    'Write out to text file
    Dim writer As StreamWriter = File.CreateText
      ("c:myfile.txt")
    writer.WriteLine("Out to file.")
    writer.Close() 
    
    
    'Read all lines from text file
    Dim reader As StreamReader = File.OpenText
      ("c:myfile.txt")
    Dim line As String = reader.ReadLine()
    While Not line Is Nothing
      Console.WriteLine(line)
      line = reader.ReadLine()
    End While
    reader.Close() 
    
    
    'Write out to binary file
    Dim str As String = "Text data"
    Dim num As Integer = 123
    Dim binWriter As New BinaryWriter(File.OpenWrite
      ("c:myfile.dat"))
    binWriter.Write(str)
    binWriter.Write(num)
    binWriter.Close() 
    
    
    'Read from binary file
    Dim binReader As New BinaryReader(File.OpenRead
      ("c:myfile.dat"))
    str = binReader.ReadString()
    num = binReader.ReadInt32()
    binReader.Close()

     

    C#

     

    using System.IO; 
    
    
    //Write out to text file
    StreamWriter writer = File.CreateText
      ("c:myfile.txt");
    writer.WriteLine("Out to file.");
    writer.Close(); 
    
    
    //Read all lines from text file
    StreamReader reader = File.OpenText
      ("c:myfile.txt");
    string line = reader.ReadLine();
    while (line != null) {
      Console.WriteLine(line);
      line = reader.ReadLine();
    }
    reader.Close(); 
    
    
    //Write out to binary file
    string str = "Text data";
    int num = 123;
    BinaryWriter binWriter = new BinaryWriter(File.OpenWrite
      ("c:myfile.dat"));
    binWriter.Write(str);
    binWriter.Write(num);
    binWriter.Close(); 
    
    
    //Read from binary file
    BinaryReader binReader = new BinaryReader(File.OpenRead
      ("c:myfile.dat"));
    str = binReader.ReadString();
    num = binReader.ReadInt32();
    binReader.Close();

     

    posted on 2005-11-17 16:55 天外飛仙 閱讀(380) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): .net
    主站蜘蛛池模板: 亚洲精品一区二区三区四区乱码 | 歪歪漫画在线观看官网免费阅读| 亚洲一区二区三区在线观看蜜桃 | 中文字幕一区二区免费| 一级女性全黄生活片免费看| 日韩在线视频线视频免费网站| 亚洲午夜久久影院| 亚洲麻豆精品果冻传媒| 亚洲黄色一级毛片| 亚洲AV无码一区二区三区人 | 久久久久久精品免费看SSS| 7m凹凸精品分类大全免费| 精品无码人妻一区二区免费蜜桃| 精品亚洲视频在线| 色吊丝免费观看网站| 相泽南亚洲一区二区在线播放| 亚洲韩国在线一卡二卡| 亚洲第一页中文字幕| 亚洲成人免费网址| 亚洲人成网国产最新在线| 亚洲欧美日韩一区二区三区| 精品久久久久久久久亚洲偷窥女厕| 亚洲成aⅴ人在线观看| 四虎亚洲精品高清在线观看| 亚洲成a人无码亚洲成www牛牛| 亚洲国产成人综合| 亚洲黄页网在线观看| 黄人成a动漫片免费网站| caoporm超免费公开视频| 成全视频在线观看免费| 麻花传媒剧在线mv免费观看| 无码人妻精品一二三区免费| 免费国产在线观看| 国产亚洲一区二区在线观看| 亚洲视频小说图片| 亚洲av成人无码网站…| 久久av免费天堂小草播放| 永久免费视频网站在线观看| 曰皮全部过程视频免费国产30分钟| 99热在线精品免费全部my| 四虎成人免费大片在线|