<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一区二区三区| 精品无码AV无码免费专区| 久久青草亚洲AV无码麻豆| 嫩草在线视频www免费看| 亚洲AV永久无码区成人网站| 两个人看的www免费高清| 亚洲国产精品无码AAA片| 国产午夜成人免费看片无遮挡| 亚洲乱码中文字幕综合| 岛国岛国免费V片在线观看| 国产亚洲精品美女久久久| 好久久免费视频高清| 亚洲视频在线观看网址| 在线看片韩国免费人成视频| 亚洲av乱码一区二区三区| 最新69国产成人精品免费视频动漫| 亚洲精品宾馆在线精品酒店| 亚洲成av人片在线观看天堂无码| 9i9精品国产免费久久| 亚洲av无码不卡| 免费AA片少妇人AA片直播| 亚洲人成未满十八禁网站| 免费一级成人毛片| 久久免费视频一区| 亚洲精品资源在线| 日本免费人成黄页在线观看视频| 欧洲亚洲综合一区二区三区| 亚洲综合色成在线播放| 久久久久高潮毛片免费全部播放 | 热re99久久6国产精品免费| 亚洲AV区无码字幕中文色 | 日韩视频免费一区二区三区| 免费播放国产性色生活片| 中文字幕在线亚洲精品| 24小时日本电影免费看| 亚洲欧美在线x视频| 亚洲国产精品国自产拍AV| 德国女人一级毛片免费| a视频免费在线观看|