Light  Rain serena

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

期待

超级好友 Rachel


我的分类(专题)

首页(262)
知识积累(40)
乐瑟温柔(108)
经验杂谈(20)
良辰吉日(2)
杂七杂八(57)
天景共赏(10)
感触文字(23)


最新日志
sunshine girl
过云雨
summer whisper
边走边唱
岛歌
不必在乎我是谁
如果有来生
Fing Fing 下
大明宫
我没有魅力

最新回复
回复:边界类、控制类、实体类
回复:边界类、控制类、实体类
回复:边界类、控制类、实体类
回复:《极地特快》插曲《When Chr
回复:边界类、控制类、实体类
回复:不必在乎我是谁
回复:边界类、控制类、实体类
回复:如果有来生
回复:Fing Fing 下
回复:我没有魅力

留言板
签写新留言

老大&老师,我想你.....
好文好多阿
886电台 好听
cai
您的子域名已开通
hi
祝福
祝福

你好

统计
blog名称:小雨
日志总数:262
评论数量:1273
留言数量:15
访问次数:4672147
建立时间:2005年1月8日

链接

有事?
音乐,永不厌倦
宁静的心情驿站
我的声音
TIPOblog
tipo bbs
appleVB
网页设计
英语学习2
英语学习3
FLASH
网络书籍
网络电台



我的博客朋友
最有技术的blog
xenium
花差花差
瓜少
span
a lai
琦少
陈少
v
阿当
http://www.ypb.cc/
痞子若鱼
另一个同行
年轻人bcims

 




W3CHINA Blog首页    管理页面    写新日志    退出

[知识积累]VB.NET and C# 比较
小雨 发表于 2006/9/1 11:02:37

http://dev.csdn.net/article/25/25324.shtm VB.NET C# Comments ' Single line onlyRem Single line only // Single line/* Multiple    line  *//// XML comments on single line/** XML comments on multiple lines */ Data Types Value TypesBooleanByteChar   (example: "A"c)Short, Integer, LongSingle, DoubleDecimalDate Reference TypesObjectString Dim x As Integer Console.WriteLine(x.GetType())     ' Prints System.Int32 Console.WriteLine(TypeName(x))  ' Prints Integer ' Type conversionDim numDecimal As Single = 3.5 Dim numInt As IntegernumInt = CType(numDecimal, Integer)   ' set to 4 (Banker's rounding)numInt = CInt(numDecimal)  ' same result as CTypenumInt = Int(numDecimal)    ' set to 3 (Int function truncates the decimal) Value Typesboolbyte, sbytechar   (example: 'A')short, ushort, int, uint, long, ulongfloat, doubledecimalDateTime   (not a built-in C# type) Reference Typesobjectstring int x;Console.WriteLine(x.GetType());    // Prints System.Int32Console.WriteLine(typeof(int));      // Prints System.Int32 // Type conversion double numDecimal = 3.5; int numInt = (int) numDecimal;   // set to 3  (truncates decimal) Constants Const MAX_STUDENTS As Integer = 25 const int MAX_STUDENTS = 25; Enumerations Enum Action   Start   [Stop]   ' Stop is a reserved word  Rewind   Forward End Enum Enum Status   Flunk = 50   Pass = 70   Excel = 90 End EnumDim a As Action = Action.Stop If a <> Action.Start Then Console.WriteLine(a)     ' Prints 1 Console.WriteLine(Status.Pass)     ' Prints 70 Dim s As Type = GetType(Status) Console.WriteLine([Enum].GetName(s, Status.Pass))    ' Prints Pass enum Action {Start, Stop, Rewind, Forward};enum Status {Flunk = 50, Pass = 70, Excel = 90};Action a = Action.Stop;if (a != Action.Start)  Console.WriteLine(a + " is " + (int) a);    // Prints "Stop is 1"Console.WriteLine(Status.Pass);    // Prints Pass Operators Comparison=  <  >  <=  >=  <> Arithmetic+  -  *  /Mod\  (integer division)^  (raise to a power) Assignment=  +=  -=  *=  /=  \=  ^=  <<=  >>=  &= BitwiseAnd  AndAlso  Or  OrElse  Not  <<  >> LogicalAnd  AndAlso  Or  OrElse  Not Note: AndAlso and OrElse are for short-circuiting logical evaluations String Concatenation& Comparison==  <  >  <=  >=  != Arithmetic+  -  *  /%  (mod)/  (integer division if both operands are ints)Math.Pow(x, y) Assignment=  +=  -=  *=  /=   %=  &=  |=  ^=  <<=  >>=  ++  -- Bitwise&  |  ^   ~  <<  >> Logical&&  ||   ! Note: && and || perform short-circuit logical evaluations String Concatenation+ Choices 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 lineIf x <> 100 Then x *= 5 : y *= 2   ' or to break up any long single command use _If whenYouHaveAReally < 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 Select Case color   ' Must be a primitive data type  Case "pink", "red"    r += 1   Case "blue"     b += 1   Case "green"     g += 1   Case Else     other += 1 End Select greeting = age < 20 ? "What's up?" : "Hello"; if (x != 100) {    // Multiple statements must be enclosed in {}  x *= 5;  y *= 2;} No need for _ or : since ; is used to terminate each statement. if (x > 5)   x *= y; else if (x == 5)   x += y; else if (x < 10)   x -= y; else   x /= y; switch (color) {                          // Must be integer or string  case "pink":  case "red":    r++;    break;        // break is mandatory; no fall-through  case "blue":   b++;   break;  case "green": g++;   break;  default:    other++;   break;       // break necessary on default} Loops Pre-test Loops: While c < 10   c += 1 End While Do Until c = 10   c += 1 Loop Do While c < 10   c += 1 Loop For c = 2 To 10 Step 2   Console.WriteLine(c) Next Post-test Loops: Do   c += 1 Loop While c < 10 Do   c += 1 Loop Until c = 10 '  Array or collection loopingDim names As String() = {"Fred", "Sue", "Barney"} For Each s As String In names   Console.WriteLine(s) Next Pre-test Loops:   // no "until" keywordwhile (i < 10)   i++;for (i = 2; i < = 10; i += 2)   Console.WriteLine(i); Post-test Loop:do   i++; while (i < 10);// Array or collection loopingstring[] names = {"Fred", "Sue", "Barney"};foreach (string s in names)  Console.WriteLine(s); Arrays 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 elementsDim names(4) As String names(0) = "David"names(5) = "Bobby"  ' Throws System.IndexOutOfRangeException ' 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.5Dim jagged()() As Integer = { _   New Integer(4) {}, New Integer(1) {}, New Integer(2) {} } jagged(0)(4) = 5 int[] nums = {1, 2, 3};for (int i = 0; i < nums.Length; i++)  Console.WriteLine(nums[i]);// 5 is the size of the arraystring[] names = new string[5];names[0] = "David";names[5] = "Bobby";   // Throws System.IndexOutOfRangeException // C# doesn't can't dynamically resize an array.  Just copy into new array.string[] names2 = new string[7]; Array.Copy(names, names2, names.Length);   // or names.CopyTo(names2, 0);  float[,] twoD = new float[rows, cols];twoD[2,0] = 4.5f;  int[][] jagged = new int[3][] {   new int[5], new int[2], new int[3] };jagged[0][4] = 5; Functions ' 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 Dim a = 1, b = 1, c As Integer   ' c set to zero by default  TestFunc(a, b, c) 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 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 = "")  Console.WriteLine("Greetings, " & prefix & " " & name) End SubSayHello("Strangelove", "Dr.")SayHello("Madonna") // 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 initializingTestFunc(a, ref b, out c);Console.WriteLine("{0} {1} {2}", a, b, c);  // 1 2 5 // Accept variable number of argumentsint 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) {  Console.WriteLine("Greetings, " + prefix + " " + name);} void SayHello(string name) {   SayHello(name, ""); } Exception Handling ' Deprecated unstructured error handlingOn Error GoTo MyErrorHandler...MyErrorHandler: Console.WriteLine(Err.Description)Dim ex As New Exception("Something is really wrong.") Throw  ex  Try   y = 0  x = 10 / yCatch ex As Exception When y = 0 ' Argument and When is optional  Console.WriteLine(ex.Message) Finally   Beep() End Try 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 {   // Must use unmanaged MessageBeep API function to beep } Namespaces Namespace Harding.Compsci.Graphics   ...End Namespace ' or Namespace Harding   Namespace Compsci     Namespace Graphics       ...    End Namespace   End Namespace End Namespace Import Harding.Compsci.Graphics namespace Harding.Compsci.Graphics {  ...} // or namespace Harding {  namespace Compsci {    namespace Graphics {      ...    }  }} using Harding.Compsci.Graphics; Classes / Interfaces Accessibility keywords PublicPrivateFriend                    ProtectedProtected FriendShared ' InheritanceClass FootballGame  Inherits Competition  ...End Class  ' Interface definitionInterface IAlarmClock   ...End Interface // Extending an interface Interface IAlarmClock   Inherits IClock  ...End Interface // Interface implementationClass WristWatch   Implements IAlarmClock, ITimer    ...End Class  Accessibility keywords publicprivateinternalprotectedprotected internalstatic // Inheritanceclass FootballGame : Competition {  ...} // Interface definitioninterface IAlarmClock {  ...} // Extending an interface interface IAlarmClock : IClock {  ...} // Interface implementationclass WristWatch : IAlarmClock, ITimer {   ...} Constructors / Destructors Class SuperHero  Private _powerLevel As Integer   Public Sub New ()     _powerLevel = 0   End Sub   Public Sub New (ByVal powerLevel As Integer)     Me._powerLevel = powerLevel   End Sub  Protected Overrides Sub Finalize ()    ' Desctructor code to free unmanaged resources     MyBase.Finalize()   End SubEnd Class class SuperHero {  private int _powerLevel;  public SuperHero() {     _powerLevel = 0;  }  public SuperHero(int powerLevel) {    this._powerLevel= powerLevel;   }  ~SuperHero() {    // Destructor code to free unmanaged resources.    // Implicitly creates a Finalize method  }} Objects Dim hero As SuperHero = New SuperHero With hero   .Name = "SpamMan"   .PowerLevel = 3 End With hero.Defend("Laura Jones") hero.Rest()     ' Calling Shared method' orSuperHero.Rest() Dim hero2 As SuperHero = hero  ' Both refer to same object hero2.Name = "WormWoman" Console.WriteLine(hero.Name)   ' Prints WormWoman hero = Nothing    ' Free the object If hero Is Nothing Then _   hero = New SuperHero Dim obj As Object = New SuperHero If TypeOf obj Is SuperHero Then _  Console.WriteLine("Is a SuperHero object.") SuperHero hero = new SuperHero(); // No "With" constructhero.Name = "SpamMan"; hero.PowerLevel = 3; hero.Defend("Laura Jones");SuperHero.Rest();   // Calling static method SuperHero hero2 = hero;   // Both refer to same object hero2.Name = "WormWoman"; Console.WriteLine(hero.Name);   // Prints WormWoman hero = null ;   // Free the object if (hero == null)  hero = new SuperHero(); Object obj = new SuperHero(); if (obj is SuperHero)   Console.WriteLine("Is a SuperHero object."); Structs Structure StudentRecord   Public name As String   Public gpa As Single   Public Sub New(ByVal name As String, ByVal gpa As Single)     Me.name = name     Me.gpa = gpa   End Sub End Structure Dim stu As StudentRecord = New StudentRecord("Bob", 3.5) Dim stu2 As StudentRecord = stu   stu2.name = "Sue" Console.WriteLine(stu.name)    ' Prints Bob Console.WriteLine(stu2.name)  ' Prints Sue struct StudentRecord {  public string name;  public float gpa;  public StudentRecord(string name, float gpa) {    this.name = name;    this.gpa = gpa;  }} StudentRecord stu = new StudentRecord("Bob", 3.5f);StudentRecord stu2 = stu;  stu2.name = "Sue";Console.WriteLine(stu.name);    // Prints BobConsole.WriteLine(stu2.name);   // Prints Sue Properties Private _size As IntegerPublic 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 private int _size;public int Size {   get {     return _size;   }   set {     if (value < 0)       _size = 0;     else       _size = value;   } } foo.Size++; Delegates / Events Delegate Sub MsgArrivedEventHandler(ByVal message As String) Event MsgArrivedEvent As MsgArrivedEventHandler ' or to define an event which declares a delegate implicitlyEvent MsgArrivedEvent(ByVal message As String) AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback ' Won't throw an exception if obj is NothingRaiseEvent MsgArrivedEvent("Test message") RemoveHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback Imports System.Windows.Forms Dim WithEvents MyButton As Button   ' WithEvents can't be used on local variableMyButton = 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 delegate void MsgArrivedEventHandler(string message); event MsgArrivedEventHandler MsgArrivedEvent; // Delegates must be used with events in C#MsgArrivedEvent += new MsgArrivedEventHandler(My_MsgArrivedEventCallback);MsgArrivedEvent("Test message");    // Throws exception if obj is nullMsgArrivedEvent -= 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 Special character constantsvbCrLf, vbCr, vbLf, vbNewLine vbNullString vbTab vbBack vbFormFeed vbVerticalTab"" Chr(65)  ' Returns 'A' Console.Write("What's your name? ") Dim name As String = Console.ReadLine() Console.Write("How old are you? ") Dim age As Integer = Val(Console.ReadLine()) Console.WriteLine("{0} is {1} years old.", name, age)  ' or Console.WriteLine(name & " is " & age & " years old.") Dim c As Integer c = Console.Read()    ' Read single char Console.WriteLine(c)   ' Prints 65 if user enters "A" Escape sequences\n, \r\t\\\" Convert.ToChar(65)  // Returns 'A' - equivalent to Chr(num) in VB// or(char) 65 Console.Write("What's your name? ");string name = Console.ReadLine();Console.Write("How old are you? ");int age = Convert.ToInt32(Console.ReadLine());Console.WriteLine("{0} is {1} years old.", name, age);// orConsole.WriteLine(name + " is " + age + " years old."); int c = Console.Read();  // Read single charConsole.WriteLine(c);    // Prints 65 if user enters "A" File I/O Imports System.IO Dim writer As StreamWriter = File.CreateText("c:\myfile.txt") writer.WriteLine("Out to file.") writer.Close() Dim reader As StreamReader = File.OpenText("c:\myfile.txt") Dim line As String = reader.ReadLine() While Not line Is Nothing   Console.WriteLine("line=" & line)   line = reader.ReadLine() End While reader.Close() 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() Dim binReader As New BinaryReader (File.OpenRead("c:\myfile.dat")) str = binReader.ReadString() num = binReader.ReadInt32() binReader.Close() using System.IO; StreamWriter writer = File.CreateText("c:\\myfile.txt"); writer.WriteLine("Out to file."); writer.Close(); StreamReader reader = File.OpenText("c:\\myfile.txt"); string line = reader.ReadLine(); while (line != null) {  Console.WriteLine(line);   line = reader.ReadLine(); } reader.Close(); string str = "Text data"; int num = 123; BinaryWriter binWriter = new BinaryWriter(File.OpenWrite("c:\\myfile.dat")); binWriter.Write(str); binWriter.Write(num); binWriter.Close(); BinaryReader binReader = new BinaryReader(File.OpenRead("c:\\myfile.dat")); str = binReader.ReadString(); num = binReader.ReadInt32(); binReader.Close(); Page last modified: 04/20/2006 16:39:28 01/14/2004 05:34:59 Please send any corrections or comments to fmccown@harding.edu.Home

阅读全文(3728) | 回复(3) | 编辑 | 精华

overload and overriable
zj(游客)发表评论于2006/10/7 21:13:51

Module Module1    Public Class farther        Public Overridable Sub eat()            MsgBox("farther eat")        End Sub    End Class    Public Class son        Inherits farther        Public Overrides Sub eat()            MsgBox("son eat")        End Sub    End Class    Public Class sonson        Inherits son        Public Overloads Sub eat()            MsgBox("sonson eat")        End Sub    End Class    Sub Main()        Dim o As farther        o = New sonson        o.eat() ' MsgBox("son eat")    End SubEnd Module ''''''''''''''''''''''''''''''''''''''''' Module Module1    Public Class farther        Public Overridable Sub eat()            MsgBox("farther eat")        End Sub    End Class    Public Class son        Inherits farther        Public Overrides Sub eat()            MsgBox("son eat")        End Sub    End Class    Public Class sonson        Inherits son        Public Overrides Sub eat()            MsgBox("sonson eat")        End Sub    End Class    Sub Main()        Dim o As farther        o = New sonson        o.eat() ' MsgBox("sonson eat")    End SubEnd Module      

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:VB.NET and C# 比较
shadows and overload(游客)发表评论于2006/10/5 15:17:18

Module Module1    Public Class farther        Public Sub ff()            MsgBox("ss")        End Sub        Public Function ff(ByVal ss As Integer)            MsgBox("ss" & ss)        End Function     End Class        Public Class son        Inherits farther               Public Overloads Sub ff(ByVal ss As Integer)            MsgBox("son")        End Sub        Public Sub fff()            ff() '正确            ff(1) '正确        End Sub    End Class    Sub Main()        Dim o As son        o = New son        o.fff()     End Sub End Module   Module Module1    Public Class farther        Public Sub ff()            MsgBox("ss")        End Sub        Public Function ff(ByVal ss As Integer)            MsgBox("ss" & ss)        End Function     End Class        Public Class son        Inherits farther               Public Shadows Sub ff(ByVal ss As Integer)            MsgBox("son")        End Sub        Public Sub fff()            ' ff()  错误            ff(1)        End Sub    End Class    Sub Main()        Dim o As son        o = New son        o.fff()     End Sub End Module
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:VB.NET and C# 比较
vb (游客)发表评论于2006/10/1 21:10:49

Public Class Class1    Protected Function sun()        MsgBox("hello")    End FunctionEnd ClassPublic Class Class2    Inherits Class1    Friend Function suns()        MyBase.sun() '可以调用         Dim ss As Class1 = New Class1        ss.sun() '不可以调用    End FunctionEnd Class
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.250 second(s), page refreshed 144782677 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号