语法比较手册,群聊音信收发

美高梅开户网址 1

发送 poll包

VB.NET and C#
Comparison
This is a quick reference guide to
highlight some key syntactical differences between VB.NET and C#. Hope
you find this useful!
Thank you to Tom Shelton, Fergus Cooney, Steven Swafford, Gjuro
Kladaric, and others for your contributions.

 

public static void Login_PostPoll()
{
try
{
string url = “”;
string dat =
“{\”ptwebqq\”:\”#{ptwebqq}\”,\”clientid\”:53999199,\”psessionid\”:\”#{psessionid}\”,\”key\”:\”\”}”;
dat = dat.Replace(“#{ptwebqq}”,
Login_ptwebqq).Replace(“#{psessionid}”, Login_Psessionid);
dat = “r=” + HttpUtility.UrlEncode(dat);
HTTP.Post_Async_Action action = Message_Get;
HTTP.Post_Async(url, dat, action);
}
catch (Exception) { Login_PostPoll(); }
}
#endregion
#region 接收到音信的回调函数
/// <summary>
/// 接收到音信的回调函数
/// </summary>
/// <param name=”data”>接收到的数目(json)</param>
private static bool Running = true;
public static void Message_Get(string data)
{
Task.Run(() => Login_PostPoll());
if (Running)
Task.Run(() =>
Message_Process(data));//那个是处理收到音信的其余3个方法具体处理
在源码
}

VB.NET

Program Structure

C#

Program Structure
Comments
Data Types
Constants
Enumerations
Operators
Choices
Loops
Arrays
Functions
Strings
Regular Expressions
Exception Handling
Namespaces
Classes / Interfaces
Constructors / Destructors
Using Objects
Structs
Properties
Delegates / Events
Generics
LINQ   New!
Console I/O
File I/O

public static void Login_GetPHV()
{
string urldata =
“{\语法比较手册,群聊音信收发。”ptwebqq\”:\”#{ptwebqq}\”,\”clientid\”:53999199,\”psessionid\”:\”\”,\”status\”:\”online\”}”.Replace(“#{ptwebqq}”,
Login_ptwebqq);
urldata = “r=” + HttpUtility.UrlEncode(urldata);
string dat = HTTP.Post(“”, urldata,
“”);

以上正是poll包的处理以及 收到的音讯处理

Imports System

VB.NET Program Structure C#

Login_Psessionid = dat.Replace(“:”, “,”).Replace(“{“, “”).Replace(“}”,
“”).Replace(“\””, “”).Split(‘,’)[10];
Login_QQ = dat.Replace(“:”, “,”).Replace(“{“, “”).Replace(“}”,
“”).Replace(“\””, “”).Split(‘,’)[14];//登录QQ
//Login_Vfwebqq = dat.Replace(“:”, “,”).Replace(“{“, “”).Replace(“}”,
“”).Replace(“\””, “”).Split(‘,’)[18];
Login_Hash = Hash2(Login_QQ, Login_ptwebqq);//
在这些js 得到那多少个hash的值
JS里面包车型地铁方式名是Hash贰 里面是1陆进制
须要更换来C#的档次。首个参数是动真格的QQ第一个ptwebqq
//壹开端拿地点的cookie
里面包车型客车Vfwebqq,是相当的,再请求叁遍,获得收获好友消息的vfwebqq
string urlvfwebqq =
“”,
Login_ptwebqq).Replace(“#{t}”, TimeStamp());
string datVfwebqq = HTTP.Get(urlvfwebqq,
“”);
Login_Vfwebqq = datVfwebqq.Split(‘\”‘)[7];
SendOnlog(Login_QQ +”/r/n”+ Login_Vfwebqq + “/r/n” + Login_Psessionid

接下去是 发送的 

Namespace Hello
   Class HelloWorld
      Overloads Shared Sub Main(ByVal args() As String)
         Dim name As String = “VB.NET”

Imports System

  • “/r/n” + Login_Hash);
    }

美高梅开户网址 2

         ‘See if an argument was passed from
the command line

          If args.Length = 1 Then name = args(0)

Namespace Hello
   Class HelloWorld
      Overloads Shared Sub Main(ByVal args() As String)
         Dim name As String = “VB.NET”

下面就足以获得 Login_ptwebqq  Login_Psessionid ,Login_Hash 这个hash 
需要

 

          Console.WriteLine(“Hello, ” & name & “!”)
      End Sub
   End Class
End Namespace

         ‘See if an argument was passed from the
command line
          If args.Length = 1 Then name = args(0)

在这几个js 得到十分hash的值
JS里面包车型大巴主意名是Hash2 里面是1陆进制 须求转移成C# 也能够直接 
调用那个JS。第叁个参数是Login_QQ 第二个Login_ptwebqq  

 上边是发送的连接以及 发送后回来的 poll包消息。代码如下 

using System;

          Console.WriteLine(“Hello, ” & name & “!”)
      End Sub
   End Class
End Namespace

public static string Hash2(string uin, string ptvfwebqq)
{
int[] ptbIndex = new int[4];
long QQ_Long = long.Parse(uin);
for (int i = 0; i < ptvfwebqq.Length; i++)
{
ptbIndex[i % 4] ^= ptvfwebqq.ToCharArray()[i];
}
string[] salt = { “EC”, “OK” };
long[] uinByte = new long[4];
uinByte[0] = QQ_Long >> 24 & 255 ^
salt[0].ToCharArray()[0];
uinByte[1] = QQ_Long >> 16 & 255 ^
salt[0].ToCharArray()[1];
uinByte[2] = QQ_Long >> 8 & 255 ^
salt[1].ToCharArray()[0];
uinByte[3] = QQ_Long & 255 ^ salt[1].ToCharArray()[1];

/// <summary>
///
/// </summary>
/// <param name=”type”>私聊0 群聊1 讨论组2</param>
/// <param name=”uin”>uin</param>
/// <param name=”messageToSend”>消息</param>
/// <param name=”auto”></param>
/// <returns></returns>
public static bool Login_Postsend_buddy_msg(int type, string uin,
string messageToSend)
{
if (messageToSend.Equals(“”) || uin.Equals(“”))
return false;
string[] tmp = messageToSend.Split(“{}”.ToCharArray());
messageToSend = “”;
for (int i = 0; i < tmp.Length; i++)
if (!tmp[i].Trim().StartsWith(“..[face”) ||
!tmp[i].Trim().EndsWith(“]..”))
messageToSend += “\\\”” + tmp[i] + “\\\”,”;
else
messageToSend += tmp[i].Replace(“..[face”,
“[\\\”face\\\”,”).Replace(“]..”, “],”);
messageToSend = messageToSend.Remove(messageToSend.LastIndexOf(‘,’));
messageToSend = messageToSend.Replace(“\r\n”, “\n”).Replace(“\n\r”,
“\n”).Replace(“\r”, “\n”).Replace(“\n”, Environment.NewLine);
try
{
string to_groupuin_did, url;
switch (type)
{
case 0:
to_groupuin_did = “to”;
url = “”;
break;
case 1:
to_groupuin_did = “group_uin”;
url = “”;
break;
case 2:
to_groupuin_did = “did”;
url = “”;
break;
default:
return false;
}
string postData =
“{\”#{type}\”:#{id},\”content\”:\”[#{msg},[\\\”font\\\”,{\\\”name\\\”:\\\”繁体\\\”,\\\”size\\\”:10,\\\”style\\\”:[0,0,0],\\\”color\\\”:\\\”000000\\\”}]]\”,\”face\”:#{face},\”clientid\”:53999199,\”msg_id\”:#{msg_id},\”psessionid\”:\”#{psessionid}\”}”;
postData = “r=” + HttpUtility.UrlEncode(postData.Replace(“#{type}”,
to_groupuin_did).Replace(“#{id}”, uin).Replace(“#{msg}”,
messageToSend).Replace(“#{face}”,
SelfInfo.face.ToString()).Replace(“#{msg_id}”, rand.Next(10000000,
99999999).ToString()).Replace(“#{psessionid}”, Login_Psessionid));

namespace Hello {
   public class HelloWorld {
      public static void Main(string[] args) {
         string name = “C#”;

using System;

long[] result = new long[8];

string dat = HTTP.Post(url, postData,
“”);
return dat.Equals(“{\”errCode\”:0,\”msg\”:\”send ok\”}”);
}
catch (Exception)
{
return false;
}
}

         // See if an argument was passed
from the command line

         if (args.Length == 1)
            name = args[0];

namespace Hello {
   public class HelloWorld {
      public static void Main(string[] args) {
         string name = “C#”;

for (int i = 0; i < 8; i++)
{
result[i] = i % 2 == 0 ? ptbIndex[i >> 1] : uinByte[i
>> 1];
}

 

         Console.WriteLine(“Hello, ” + name + “!”);
      }
   }
}

         // See if an argument was passed from the
command line
         if (args.Length == 1)
            name = args[0];

string[] hex = { “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”,
“A”, “B”, “C”, “D”, “E”, “F” };
string buf = “”;

那一讲费了成都百货上千年华,中间又去查了资料。特别是处理回来的 包的json
,不领悟怎么格式化,只好替换出来,得到想要的数码。

VB.NET

Comments

C#

         Console.WriteLine(“Hello, ” + name + “!”);
      }
   }
}

for (int i= 0; i < result.Length; i++)
{
buf += hex[(int)((result[i] >> 4) & 15)];
buf += hex[(int)(result[i] & 15)];
}
return buf;
}

 

‘ Single line only
*REM** Single line only ”’ <summary>XML
comments</summary>*

VB.NET Comments C#

 

到近年来终止,整个新手smart qq http 协议的教程
已经足以说成功了,因为那些体协会议的功用更纯粹,并且很多都早已被TX去掉的,就像是获取好友的
真实QQ也已经是报错的。接下来就能够做图形界面,还有局地工作了(qq机器人自动还原等)

// Single line
/\
Multiple
    line  */
/// <summary>XML comments on single line</summary>
/** <summary>XML comments on multiple lines</summary>
*/*

‘ Single line only
REM Single line only
”’ <summary>XML
comments</summary>

以上正是C# 获取smart qq  的vfwebqq ,psessionid,hash 

 

VB.NET

Data Types

C#

// Single line
/* Multiple
    line  */
/// <summary>XML comments on single line</summary>
/** <summary>XML comments on multiple lines</summary>
*/

Value Types
Boolean
Byte, SByte
Char
Short, UShort, Integer, UInteger, Long, ULong
Single, Double
Decimal
Date   (alias of System.DateTime)

VB.NET Data Types C#

Reference Types
Object
String

Value Types
Boolean
Byte, SByte
Char
Short, UShort, Integer, UInteger, Long, ULong
Single, Double
Decimal
Date   (alias of System.DateTime)

Initializing
Dim correct As Boolean = True
Dim b As Byte = &H2A   ‘hex or &O52 for
octal

Dim person As Object = Nothing
Dim name As String = “Dwight”
Dim grade As Char = “B”c
Dim today As Date = #12/31/2007 12:15:00 PM#
Dim amount As Decimal = 35.99@
Dim gpa As Single = 2.9!
Dim pi As Double = 3.14159265
Dim lTotal As Long = 123456L
Dim sTotal As Short = 123S
Dim usTotal As UShort = 123US
Dim uiTotal As UInteger = 123UI
Dim ulTotal As ULong = 123UL

Reference Types
Object
String

Implicitly Typed Local Variables
Dim s = “Hello!”
Dim nums = New Integer() {1, 2, 3}
Dim hero = New SuperHero With {.Name = “Batman”}

Initializing
Dim correct As Boolean = True
Dim b As Byte = &H2A   ‘hex or &O52 for
octal
Dim person As Object = Nothing
Dim name As String = “Dwight”
Dim grade As Char = “B”c
Dim today As Date = #12/31/2010 12:15:00 PM#
Dim amount As Decimal = 35.99@
Dim gpa As Single = 2.9!
Dim pi As Double = 3.14159265
Dim lTotal As Long = 123456L
Dim sTotal As Short = 123S
Dim usTotal As UShort = 123US
Dim uiTotal As UInteger = 123UI
Dim ulTotal As ULong = 123UL

Type Information
Dim x As Integer
Console.WriteLine(x.GetType())          ‘ Prints System.Int32
Console.WriteLine(GetType(Integer))  
Prints System.Int32

Console.WriteLine(TypeName(x))       
Prints Integer

Implicitly Typed Local Variables
Dim s = “Hello!”
Dim nums = New Integer() {1, 2, 3}
Dim hero = New SuperHero With {.Name = “Batman”}

Dim c as New Circle
If TypeOf c Is Shape Then _
    Console.WriteLine(“c is a Shape”)

Type Information
Dim x As Integer
Console.WriteLine(x.GetType())          ‘ Prints System.Int32
Console.WriteLine(GetType(Integer))   ‘ Prints
System.Int32
Console.WriteLine(TypeName(x))        ‘ Prints
Integer

Type Conversion / Casting
Dim d As Single = 3.5
Dim i As Integer = CType(d, Integer)  
set to 4 (Banker’s rounding)

i = CInt(d)  ‘ same result as
CType

i = Int(d)    ‘ set to 3 (Int function
truncates the decimal)

Dim c as New Circle
If TypeOf c Is Shape Then _
    Console.WriteLine(“c is a Shape”)

Dim o As Object = 2
i = DirectCast(o, Integer)   ‘ Throws
InvalidCastException if type cast fails

Type Conversion / Casting
Dim d As Single = 3.5
Dim i As Integer = CType(d, Integer)   ‘ set
to 4 (Banker’s rounding)
i = CInt(d)  ‘ same result as CType
i = Int(d)    ‘ set to 3 (Int function
truncates the decimal)

Dim s As New Shape
Dim c As Circle = TryCast(s, Circle)  
Returns Nothing if type cast fails

Dim o As Object = 2
i = DirectCast(o, Integer)   ‘ Throws
InvalidCastException if type cast fails

Value Types
bool
byte, sbyte
char
short, ushort, int, uint, long, ulong
float, double
decimal
DateTime   (not a built-in
C# type)

Dim s As New Shape
Dim c As Circle = TryCast(s, Circle)   ‘
Returns Nothing if type cast fails

Reference Types
object
string

Value Types
bool
byte, sbyte
char
short, ushort, int, uint, long, ulong
float, double
decimal
DateTime   (not a built-in C# type)

Initializing
bool correct = true;
byte b = 0x2A;   // hex
object person = null;
string name = “Dwight”;
char grade = ‘B’;
DateTime today = DateTime.Parse(“12/31/2007 12:15:00”);
decimal amount = 35.99m;
float gpa = 2.9f;
double pi = 3.14159265;
long lTotal = 123456L;
short sTotal = 123;
ushort usTotal = 123;
uint uiTotal = 123;
ulong ulTotal = 123;

Reference Types
object
string

Implicitly Typed Local Variables
var s = “Hello!”;
var nums = new int[] { 1, 2, 3 };
var hero = new SuperHero() { Name = “Batman” };

Initializing
bool correct = true;
byte b = 0x2A;   // hex
object person = null;
string name = “Dwight”;
char grade = ‘B’;
DateTime today = DateTime.Parse(“12/31/2010 12:15:00 PM”);
decimal amount = 35.99m;
float gpa = 2.9f;
double pi = 3.14159265;
long lTotal = 123456L;
short sTotal = 123;
ushort usTotal = 123;
uint uiTotal = 123;
ulong ulTotal = 123;

Type Information
int x;
Console.WriteLine(x.GetType());              // Prints System.Int32
Console.WriteLine(typeof(int));               // Prints System.Int32
Console.WriteLine(x.GetType().Name);   // prints Int32

Implicitly Typed Local Variables
var s = “Hello!”;
var nums = new int[] { 1, 2, 3 };
var hero = new SuperHero() { Name = “Batman” };

Circle c = new Circle();
if (c is Shape)
    Console.WriteLine(“c is a Shape”);

Type Information
int x;
Console.WriteLine(x.GetType());              // Prints System.Int32
Console.WriteLine(typeof(int));               // Prints System.Int32
Console.WriteLine(x.GetType().Name);   //
prints Int32

Type Conversion / Casting
float d = 3.5f;
i = Convert.ToInt32(d);     // Set to 4
(rounds)

int i = (int)d;     // set to 3
(truncates decimal)

Circle c = new Circle();
if (c is Shape)
    Console.WriteLine(“c is a Shape”);

object o = 2;
int i = (int)o;   // Throws
InvalidCastException if type cast fails

Type Conversion / Casting
float d = 3.5f;
i = Convert.ToInt32(d);     // Set to 4
(rounds)
int i = (int)d;     // set to 3 (truncates
decimal)

Shape s = new Shape();
Circle c = s as Circle;   // Returns
null if type cast fails

object o = 2;
int i = (int)o;   // Throws InvalidCastException
if type cast fails

VB.NET

Constants

C#

Shape s = new Shape();
Circle c = s as Circle;   // Returns null if
type cast fails

Const MAX_STUDENTS As Integer = 25

VB.NET Constants C#

‘ Can set to a const or var; may be initialized in a
constructor

ReadOnly MIN_DIAMETER As Single = 4.93

Const MAX_STUDENTS As Integer = 25

const int MAX_STUDENTS = 25;

‘ Can set to a const or var; may be initialized in
a constructor
ReadOnly MIN_DIAMETER As Single = 4.93

// Can set to a const or var; may be initialized in a
constructor

readonly float MIN_DIAMETER = 4.93f;

const int MAX_STUDENTS = 25;

VB.NET

Enumerations

C#

// Can set to a const or var; may be initialized
in a constructor
readonly float MIN_DIAMETER = 4.93f;

Enum Action
  Start 
  [Stop]   ‘ Stop is a reserved
word

  Rewind
  Forward
End Enum

VB.NET Enumerations C#

Enum Status
  Flunk = 50
  Pass = 70
  Excel = 90
End Enum
Dim a As Action = Action.Stop
If a <> Action.Start Then _
   Console.WriteLine(a.ToString & ” is ” & a)     ‘ Prints “Stop is 1”

Enum Action
  Start 
  [Stop]   ‘ Stop is a reserved word
  Rewind
  Forward
End Enum

Console.WriteLine(Status.Pass)     ‘ Prints
70

Console.WriteLine(Status.Pass.ToString())     ‘ Prints Pass

Enum Status
  Flunk = 50
  Pass = 70
  Excel = 90
End Enum
Dim a As Action = Action.Stop
If a <> Action.Start Then _
   Console.WriteLine(a.ToString & ” is ” & a)     ‘ Prints “Stop is 1”

enum Action {Start, Stop, Rewind, Forward};
enum Status {Flunk = 50, Pass = 70, Excel = 90};

Console.WriteLine(Status.Pass)     ‘ Prints
70
Console.WriteLine(Status.Pass.ToString())     ‘
Prints Pass

Action a = Action.Stop;
if (a != Action.Start)
  Console.WriteLine(a + ” is ” + (int) a);    // Prints “Stop is 1”

enum Action {Start, Stop, Rewind, Forward};
enum Status {Flunk = 50, Pass = 70, Excel = 90};

Console.WriteLine((int) Status.Pass);    //
Prints 70

Console.WriteLine(Status.Pass);      //
Prints Pass

Action a = Action.Stop;
if (a != Action.Start)
  Console.WriteLine(a + ” is ” + (int) a);    //
Prints “Stop is 1”

VB.NET

Operators

C#

Console.WriteLine((int) Status.Pass);    // Prints
70
Console.WriteLine(Status.Pass);      // Prints
Pass

Comparison
=  <  >  <=  >=  <>

VB.NET Operators C#

Arithmetic
+  –  *  /
Mod
(integer division)
(raise to a power)

Comparison
=  <  >  <=  >=  <>

Assignment
=  +=  -=  *=  /=  \=  ^=  <<=  >>=  &=

Arithmetic
+  –  *  /
Mod
\  (integer division)
^  (raise to a power)

Bitwise
And   Or   Xor   Not   <<   >>

Assignment
=  +=  -=  *=  /=  \=  ^=  <<=  >>=  &=

Logical
AndAlso   OrElse   And   Or   Xor   Not

Bitwise
And   Or   Xor   Not   <<   >>

Note: AndAlso and OrElse perform short-circuit logical
evaluations

Logical
AndAlso   OrElse   And   Or   Xor   Not

String Concatenation
&

Note: AndAlso and OrElse perform short-circuit logical evaluations

Comparison
==  <  >  <=  >=  !=

String Concatenation
&

Arithmetic
+  –  *  /
(mod)
(integer division if both operands are
ints)

Math.Pow(x, y)

Comparison
==  <  >  <=  >=  !=

Assignment
=  +=  -=  *=  /=   %=  &=  |=  ^=  <<=  >>=  ++  —

Arithmetic
+  –  *  /
%  (mod)
/  (integer division if both operands are
ints)
Math.Pow(x, y)

Bitwise
&   |   ^   ~   <<   >>

Assignment
=  +=  -=  *=  /=   %=  &=  |=  ^=  <<=  >>=  ++  —

Logical
&&   ||   &   |   ^   !

Bitwise
&   |   ^   ~   <<   >>

Note: && and || perform short-circuit logical evaluations

Logical
&&   ||   &   |   ^   !

String Concatenation
+

Note: && and || perform short-circuit logical evaluations

VB.NET

Choices

C#

String Concatenation
+

‘ Ternary/Conditional operator (Iff evaluates 2nd and 3rd
expressions)

greeting = If(age < 20, “What’s up?”, “Hello”)

VB.NET Choices C#

‘ One line doesn’t require “End If”
If age < 20 Then greeting = “What’s up?”
If age < 20 Then greeting = “What’s up?” Else greeting =
“Hello”

‘ Ternary/Conditional operator (IIf evaluates 2nd
and 3rd expressions)
greeting = If(age < 20, “What’s up?”, “Hello”)

‘ Use : to put two commands on same line
If x <> 100 AndAlso y < 5 Then x *= 5 : y *=
2  

‘ One line doesn’t require “End If”
If age < 20 Then greeting = “What’s up?”
If age < 20 Then greeting = “What’s up?” Else greeting =
“Hello”

‘ Preferred
If x <> 100 AndAlso y < 5 Then
  x *= 5
  y *= 2
End If

‘ Use : to put two commands on same line
If x <> 100 AndAlso y < 5 Then x *= 5 : y *= 2  

‘ To break up any long single line use _
If whenYouHaveAReally < longLine And _
  itNeedsToBeBrokenInto2 > Lines Then _
  UseTheUnderscore(charToBreakItUp)

‘ Preferred
If x <> 100 AndAlso y < 5 Then
  x *= 5
  y *= 2
End If

‘**If x > 5 Then
  x *= y
ElseIf x = 5 OrElse y Mod 2 = 0 Then
  x += y
ElseIf x < 10 Then
  x -= y
Else
  x /= y
End If**

‘ Use _ to break up long single line or use
implicit line break
If whenYouHaveAReally < longLine And
  itNeedsToBeBrokenInto2 > Lines Then _
  UseTheUnderscore(charToBreakItUp)

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

If x > 5 Then
  x *= y
ElseIf x = 5 OrElse y Mod 2 = 0 Then
  x += y
ElseIf x < 10 Then
  x -= y
Else
  x /= y
End If

// Ternary/Conditional operator
greeting = age < 20 ? “What’s up?” : “Hello”;

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

if (age < 20)
  greeting = “What’s up?”;
else
  greeting = “Hello”;

// Ternary/Conditional operator
greeting = age < 20 ? “What’s up?” : “Hello”;

// Multiple statements must be enclosed in {}
if (x != 100 && y < 5) {   
  x *= 5;
  y *= 2;
}

if (age < 20)
  greeting = “What’s up?”;
else
  greeting = “Hello”;

 

// Multiple statements must be enclosed in
{}
if (x != 100 && y < 5) {   
  x *= 5;
  y *= 2;
}

No need for _ or : since ; is used to terminate each
statement.

No need for _ or : since ; is used to terminate
each statement.


if
(x > 5)
  x *= y;
else if (x == 5 || y % 2 == 0)
  x += y;
else if (x < 10)
  x -= y;
else
  x /= y;


if
(x > 5)
  x *= y;
else if (x == 5 || y % 2 == 0)
  x += y;
else if (x < 10)
  x -= y;
else
  x /= y;

// Every case must end with break or goto
case

switch (color) {                          // Must be integer or string
  case “pink”:
  case “red”:    r++;    break;
  case “blue”:   b++;   break;   case “green”: g++;   break;   default:    other++;   break;       // break necessary on default
}

// Every case must end with break or goto
case
switch (color) {                          // Must be integer or
string

  case “pink”:
  case “red”:    r++;    break;
  case “blue”:   b++;   break;   case “green”: g++;   break;   default:    other++;   break;       //
break necessary on default
}

VB.NET

Loops

C#

VB.NET Loops C#

Pre-test Loops:

Pre-test Loops:

While c < 10
  c += 1
End While

While c < 10
  c += 1
End While

Do Until c = 10 
  c += 1
Loop

Do Until c = 10 
  c += 1
Loop

Do While c < 10
  c += 1
Loop

Do While c < 10
  c += 1
Loop

For c = 2 To 10 Step 2
  Console.WriteLine(c)
Next

For c = 2 To 10 Step 2
  Console.WriteLine(c)
Next

  • Post-test Loops:*

Post-test Loops:

Do 
  c += 1
Loop While c < 10

Do 
  c += 1
Loop While c < 10

Do 
  c += 1
Loop Until c = 10

Do 
  c += 1
Loop Until c = 10

‘  Array or collection looping
Dim names As String() = {“Fred”, “Sue”, “Barney”}
For Each s As String In names
  Console.WriteLine(s)
Next

‘  Array or collection looping
Dim names As String() = {“Fred”, “Sue”, “Barney”}
For Each s As String In names
  Console.WriteLine(s)
Next

‘ Breaking out of loops
Dim i As Integer = 0
While (True)
  If (i = 5) Then Exit While
  i += 1
End While

‘ Breaking out of loops
Dim i As Integer = 0
While (True)
  If (i = 5) Then Exit While
  i += 1
End While

‘ Continue to next iteration
For i = 0 To 4
  If i < 4 Then Continue For
  Console.WriteLine(i)   ‘ Only prints
4

Next

‘ Continue to next iteration
For i = 0 To 4
  If i < 4 Then Continue For
  Console.WriteLine(i)   ‘ Only prints 4
Next

Pre-test Loops:  

Pre-test Loops:  

// no “until” keyword
while (c < 10)
  c++;

// no “until” keyword
while (c < 10)
  c++;

for (c = 2; c <= 10; c += 2)
  Console.WriteLine(c);

for (c = 2; c <= 10; c += 2)
  Console.WriteLine(c);

Post-test Loop:

Post-test Loop:

do
  c++;
while (c < 10);

do
  c++;
while (c < 10);

// Array or collection looping
string[] names = {“Fred”, “Sue”, “Barney”};
foreach (string s in names)
  Console.WriteLine(s);

// Array or collection looping
string[] names = {“Fred”, “Sue”, “Barney”};
foreach (string s in names)
  Console.WriteLine(s);

// Breaking out of loops
int i = 0;
while (true) {
  if (i == 5)
    break;
  i++;
}

// Breaking out of loops
int i = 0;
while (true) {
  if (i == 5)
    break;
  i++;
}

// Continue to next iteration
for (i = 0; i <= 4; i++) {
  if (i < 4)
    continue;
  Console.WriteLine(i);   // Only prints
4

}

// Continue to next iteration
for (i = 0; i <= 4; i++) {
  if (i < 4)
    continue;
  Console.WriteLine(i);   // Only prints
4
}

VB.NET

Arrays

C#

VB.NET Arrays C#

Dim nums() As Integer = {1, 2, 3} 
For i As Integer = 0 To nums.Length – 1
  Console.WriteLine(nums(i))
Next

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) = “David”
names(5) = “Bobby”  ‘ Throws
System.IndexOutOfRangeException

‘ 4 is the index of the last element, so it holds
5 elements
Dim 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)

‘ 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 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

Dim 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]);

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] = “David”;
names[5] = “Bobby”;   // Throws
System.IndexOutOfRangeException

// 5 is the size of the array
string[] names = new string[5];
names[0] = “David”;
names[5] = “Bobby”;   // Throws
System.IndexOutOfRangeException

// C# 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); 

// Add two elements, keeping the existing
values
Array.Resize(ref names, 7);

float[,] twoD = new float[rows, cols];
twoD[2,0] = 4.5f; 

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;

int[][] jagged = new int[3][] {
  new int[5], new int[2], new int[3] };
jagged[0][4] = 5;

VB.NET

Functions

C#

VB.NET Functions C#

‘ 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

‘ 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

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#

‘ 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

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 Sub

‘ 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 Sub

SayHello(“Strangelove”, “Dr.”)
SayHello(“Mom”)

美高梅开户网址,SayHello(“Strangelove”, “Dr.”)
SayHello(“Mom”)

// 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;
}

// 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);
Console.WriteLine(“{0} {1} {2}”, a, b, c);  // 1 2 5

int a = 1, b = 1, c;  // c doesn’t need initializing
TestFunc(a, ref b, out c);
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;
}

// 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

int total = Sum(4, 3, 2, 1);   // returns 10

/\ C# 4.0 supports optional parameters. Previous versions
required function overloading. */* 
void SayHello(string name, string prefix = “”) {
  Console.WriteLine(“Greetings, ” + prefix + ” ” + name);

/* C# 4.0 supports optional parameters. Previous
versions required function overloading. */ 
void SayHello(string name, string prefix = “”) {
  Console.WriteLine(“Greetings, ” + prefix + ” ” + name);

SayHello(“Strangelove”, “Dr.”);
SayHello(“Mom”);

SayHello(“Strangelove”, “Dr.”);
SayHello(“Mom”);

VB.NET

Strings

C#

VB.NET Strings C#

Special character constants (all also accessible from
ControlChars class)

vbCrLf, vbCr, vbLf, vbNewLine
vbNullString
vbTab
vbBack
vbFormFeed
vbVerticalTab
“”

Special character constants (all also accessible
from ControlChars class)
vbCrLf, vbCr, vbLf, vbNewLine
vbNullString
vbTab
vbBack
vbFormFeed
vbVerticalTab
“”

‘ String concatenation (use & or +)
Dim school As String = “Harding” & vbTab
school = school & “University” ‘ school is
“Harding (tab) University”

‘ String concatenation (use & or +)
Dim school As String = “Harding” & vbTab
school = school & “University” ‘ school is
“Harding (tab) University”

‘ Chars
Dim letter As Char = school.Chars(0)  
letter is H

letter = “Z”c                                         ‘ letter is Z
letter = Convert.ToChar(65)                
letter is A

letter = Chr(65)                                 ‘ same thing Dim word() As Char = school.ToCharArray() ‘ word holds Harding

‘ Chars
Dim letter As Char = school.Chars(0)   ‘
letter is H
letter = “Z”c                                         ‘ letter is Z
letter = Convert.ToChar(65)                ‘
letter is A
letter = Chr(65)                                 ‘ same thing
Dim word() As Char = school.ToCharArray() ‘
word holds Harding

‘ No string literal operator
Dim msg As String = “File is c:\temp\x.dat”

‘ No string literal operator
Dim msg As String = “File is c:\temp\x.dat”

‘ String comparison
Dim mascot As String = “Bisons”
If (mascot = “Bisons”) Then   
true

If (mascot.Equals(“Bisons”)) Then  
true

If (mascot.ToUpper().Equals(“BISONS”)) Then  ‘ true
If (mascot.CompareTo(“Bisons”) = 0) Then   ‘ true

‘ String comparison
Dim mascot As String = “Bisons”
If (mascot = “Bisons”) Then   ‘ true
If (mascot.Equals(“Bisons”)) Then   ‘
true
If (mascot.ToUpper().Equals(“BISONS”)) Then  ‘ true
If (mascot.CompareTo(“Bisons”) = 0) Then   ‘
true

‘ String matching with Like – Regex is more
powerful

If (“John 3:16” Like “Jo[Hh]? #:*”) Then   ‘true

‘ String matching with Like – Regex is more
powerful
If (“John 3:16” Like “Jo[Hh]? #:*”) Then   ‘true

‘ Substring
s = mascot.Substring(2, 3)) ‘ s is
“son”

‘ Substring
s = mascot.Substring(2, 3)) ‘ s is
“son”

‘ Replacement
s = mascot.Replace(“sons”, “nomial”))
s is “Binomial”

‘ Replacement
s = mascot.Replace(“sons”, “nomial”)) ‘ s is
“Binomial”

‘ Split
Dim names As String = “Michael,Dwight,Jim,Pam”
Dim parts() As String = names.Split(“,”.ToCharArray())   ‘ One name in each slot

‘ Split
Dim names As String = “Michael,Dwight,Jim,Pam”
Dim parts() As String = names.Split(“,”.ToCharArray())   ‘ One name in each slot

‘ Date to string
Dim dt As New DateTime(1973, 10, 12)
Dim s As String = “My birthday: ” & dt.ToString(“MMM dd, yyyy”)   ‘ Oct 12, 1973

‘ Date to string
Dim dt As New DateTime(1973, 10, 12)
Dim s As String = “My birthday: ” & dt.ToString(“MMM dd, yyyy”)   ‘ Oct 12, 1973

‘ Integer to String
Dim x As Integer = 2
Dim y As String = x.ToString()     ‘ y is
“2”

‘ Integer to String
Dim x As Integer = 2
Dim y As String = x.ToString()     ‘ y is
“2”

‘ String to Integer
Dim x As Integer = Convert.ToInt32(“-5”)     ‘ x is -5

‘ String to Integer
Dim x As Integer = Convert.ToInt32(“-5”)     ‘ x
is -5

‘ Mutable string Dim buffer As New System.Text.StringBuilder(“two “)
buffer.Append(“three “)
buffer.Insert(0, “one “)
buffer.Replace(“two”, “TWO”)
Console.WriteLine(buffer)         ‘ Prints
“one TWO three”

‘ Mutable string
Dim buffer As New System.Text.StringBuilder(“two “)
buffer.Append(“three “)
buffer.Insert(0, “one “)
buffer.Replace(“two”, “TWO”)
Console.WriteLine(buffer)         ‘ Prints “one
TWO three”

Escape sequences
\r    // carriage-return
\n    // line-feed
\t    // tab
\\    // backslash
\”    // quote

Escape sequences
\r    // carriage-return
\n    // line-feed
\t    // tab
\\    // backslash
\”    // quote

// String concatenation
string school = “Harding\t”;
school = school + “University”;   // school
is “Harding (tab) University”

// String concatenation
string school = “Harding\t”;
school = school + “University”;   // school is
“Harding (tab) University”

// Chars
char letter = school[0];            //
letter is H

letter = ‘Z’;                               // letter is Z
letter = Convert.ToChar(65);     // letter
is A

letter = (char)65;                    //
same thing
**
char[]* word = school.ToCharArray();   // word holds Harding*

// Chars
char letter = school[0];            //
letter is H
letter = ‘Z’;                               //
letter is Z
letter = Convert.ToChar(65);     // letter is
A
letter = (char)65;                    // same
thing
char[] word = school.ToCharArray();   // word holds Harding

// String literal
string msg = @“File is c:\temp\x.dat”;
// same as
string msg = “File is c:\\temp\\x.dat”;

// String literal
string msg = @“File is c:\temp\x.dat”;
// same as
string msg = “File is c:\\temp\\x.dat”;

// String comparison
string mascot = “Bisons”;
if (mascot == “Bisons”)    // true
if (mascot.Equals(“Bisons”))   //
true

if (mascot.ToUpper().Equals(“BISONS”))   // true
if (mascot.CompareTo(“Bisons”) == 0)    // true

// String comparison
string mascot = “Bisons”;
if (mascot == “Bisons”)    // true
if (mascot.Equals(“Bisons”))   //
true
if (mascot.ToUpper().Equals(“BISONS”))   // true
if (mascot.CompareTo(“Bisons”) == 0)    //
true

// String matching – No Like equivalent, use
Regex

// String matching – No Like equivalent, use
Regex

// Substring
s = mascot.Substring(2, 3))     // s is
“son”

// Substring
s = mascot.Substring(2, 3))     // s is
“son”

// Replacement
s = mascot.Replace(“sons”, “nomial”))     // s is “Binomial”

// Replacement
s = mascot.Replace(“sons”, “nomial”))     // s
is “Binomial”

// Split
string names = “Michael,Dwight,Jim,Pam”;
string[] parts = names.Split(“,”.ToCharArray());   // One name in each slot

// Split
string names = “Michael,Dwight,Jim,Pam”;
string[] parts = names.Split(“,”.ToCharArray());   // One name in each slot

// Date to string
DateTime dt = new DateTime(1973, 10, 12);
string s = dt.ToString(“MMM dd, yyyy”);     // Oct 12, 1973

// Date to string
DateTime dt = new DateTime(1973, 10, 12);
string s = dt.ToString(“MMM dd, yyyy”);     // Oct
12, 1973

// int to string
int x = 2;
string y = x.ToString();     // y is
“2”

// int to string
int x = 2;
string y = x.ToString();     // y is “2”

// string to int
int x = Convert.ToInt32(“-5”);     // x is
-5

// string to int
int x = Convert.ToInt32(“-5”);     // x is
-5

// Mutable string
System.Text.StringBuilder buffer = new
System.Text.StringBuilder(“two “);
buffer.Append(“three “);
buffer.Insert(0, “one “);
buffer.Replace(“two”, “TWO”);
Console.WriteLine(buffer);     // Prints
“one TWO three”

 

VB.NET

Regular Expressions

C#

// Mutable string
System.Text.StringBuilder buffer = new
System.Text.StringBuilder(“two “);
buffer.Append(“three “);
buffer.Insert(0, “one “);
buffer.Replace(“two”, “TWO”);
Console.WriteLine(buffer);     // Prints “one TWO
three”

Imports System.Text.RegularExpressions

VB.NET Regular Expressions C#

‘ Match a string pattern
Dim r As New Regex(“j[aeiou]h?. \d:*”, RegexOptions.IgnoreCase
Or _
        RegexOptions.Compiled)
If (r.Match(“John 3:16”).Success) Then   ‘true
    Console.WriteLine(“Match”)
End If

Imports System.Text.RegularExpressions

‘ Find and remember all matching patterns
Dim s As String = “My number is 305-1881, not 305-1818.”
Dim r As New Regex(“(\d+-\d+)”)
Dim m As Match = r.Match(s)    
Matches 305-1881 and 305-1818

While m.Success
    Console.WriteLine(“Found number: ” & m.Groups(1).Value & ” at
position ” _
            & m.Groups(1).Index.ToString)
    m = m.NextMatch()
End While

‘ Match a string pattern
Dim r As New Regex(“j[aeiou]h?. \d:*”, RegexOptions.IgnoreCase
Or _
        RegexOptions.Compiled)
If (r.Match(“John 3:16”).Success) Then   ‘true
    Console.WriteLine(“Match”)
End If

‘ Remeber multiple parts of matched pattern
Dim r As New Regex(“(\d\d):(\d\d) (am|pm)”)
Dim m As Match = r.Match(“We left at 03:15 pm.”)
If m.Success Then
    Console.WriteLine(“Hour: ” & m.Groups(1).ToString)       ‘ 03
    Console.WriteLine(“Min: ” & m.Groups(2).ToString)         ‘ 15
    Console.WriteLine(“Ending: ” & m.Groups(3).ToString)   ‘ pm
End If

‘ Find and remember all matching patterns
Dim s As String = “My number is 305-1881, not 305-1818.”
Dim r As New Regex(“(\d+-\d+)”)
Dim m As Match = r.Match(s)     ‘ Matches
305-1881 and 305-1818
While m.Success
    Console.WriteLine(“Found number: ” & m.Groups(1).Value & ” at
position ” _
            & m.Groups(1).Index.ToString)
    m = m.NextMatch()
End While

‘ Replace all occurrances of a pattern
Dim r As New Regex(“h\w+?d”, RegexOptions.IgnoreCase)
Dim s As String = r.Replace(“I heard this was HARD!”, “easy”)  
‘ I easy this was easy!

‘ Remeber multiple parts of matched
pattern
Dim r As New Regex(“(\d\d):(\d\d) (am|pm)”)
Dim m As Match = r.Match(“We left at 03:15 pm.”)
If m.Success Then
    Console.WriteLine(“Hour: ” & m.Groups(1).ToString)       ‘ 03
    Console.WriteLine(“Min: ” & m.Groups(2).ToString)         ‘ 15
    Console.WriteLine(“Ending: ” & m.Groups(3).ToString)   ‘ pm
End If

‘ Replace matched patterns
Dim s As String = Regex.Replace(“123 < 456”, “(\d+) . (\d+)”,
“$2 > $1”)   ‘ 456 > 123

‘ Replace all occurrances of a pattern
Dim r As New Regex(“h\w+?d”, RegexOptions.IgnoreCase)
Dim s As String = r.Replace(“I heard this was HARD!”, “easy”)  
‘ I easy this was easy!

‘ Split a string based on a pattern
Dim names As String = “Michael, Dwight, Jim, Pam”
Dim r As New Regex(“,\s*”)
Dim parts() As String = r.Split(names)   ‘ One name in each slot

‘ Replace matched patterns
Dim s As String = Regex.Replace(“123 < 456”, “(\d+) . (\d+)”,
“$2 > $1”)   ‘ 456 > 123

using System.Text.RegularExpressions;

‘ Split a string based on a pattern
Dim names As String = “Michael, Dwight, Jim, Pam”
Dim r As New Regex(“,\s*”)
Dim parts() As String = r.Split(names)   ‘ One
name in each slot

// Match a string pattern
Regex r = new Regex(@”j[aeiou]h?. \d:*”,
RegexOptions.IgnoreCase |
        RegexOptions.Compiled);
if (r.Match(“John 3:16”).Success)   //
true

    Console.WriteLine(“Match”);

using System.Text.RegularExpressions;

// Find and remember all matching
patterns

string s = “My number is 305-1881, not 305-1818.”;
Regex r = new Regex(“(\\d+-\\d+)”);
// Matches 305-1881 and 305-1818
for (Match m = r.Match(s); m.Success; m = m.NextMatch())
    Console.WriteLine(“Found number: ” + m.Groups[1] + ” at position “

// Match a string pattern
Regex r = new Regex(@”j[aeiou]h?. \d:*”,
RegexOptions.IgnoreCase |
        RegexOptions.Compiled);
if (r.Match(“John 3:16”).Success)   //
true
    Console.WriteLine(“Match”);

  •         m.Groups[1].Index);

// Find and remember all matching
patterns
string s = “My number is 305-1881, not 305-1818.”;
Regex r = new Regex(“(\\d+-\\d+)”);
// Matches 305-1881 and 305-1818
for (Match m = r.Match(s); m.Success; m = m.NextMatch())
    Console.WriteLine(“Found number: ” + m.Groups[1] + ” at position “

// Remeber multiple parts of matched
pattern

Regex r = new Regex(“@(\d\d):(\d\d) (am|pm)”);
Match m = r.Match(“We left at 03:15 pm.”);
if (m.Success) {
    Console.WriteLine(“Hour: ” + m.Groups[1]);       // 03
    Console.WriteLine(“Min: ” + m.Groups[2]);         // 15
    Console.WriteLine(“Ending: ” + m.Groups[3]);   // pm
}

  •         m.Groups[1].Index);

// Replace all occurrances of a pattern
Regex r = new Regex(“h\\w+?d”, RegexOptions.IgnoreCase);
string s = r.Replace(“I heard this was HARD!”, “easy”));   // I easy this was easy!

// Remeber multiple parts of matched
pattern
Regex r = new Regex(“@(\d\d):(\d\d) (am|pm)”);
Match m = r.Match(“We left at 03:15 pm.”);
if (m.Success) {
    Console.WriteLine(“Hour: ” + m.Groups[1]);       // 03
    Console.WriteLine(“Min: ” + m.Groups[2]);         // 15
    Console.WriteLine(“Ending: ” + m.Groups[3]);   // pm
}

// Replace matched patterns
string s = Regex.Replace(“123 < 456″, @”(\d+) . (\d+)”, “$2
> $1”);   // 456 > 123

// Replace all occurrances of a pattern
Regex r = new Regex(“h\\w+?d”, RegexOptions.IgnoreCase);
string s = r.Replace(“I heard this was HARD!”, “easy”));   // I easy this was easy!

// Split a string based on a pattern
string names = “Michael, Dwight, Jim, Pam”;
Regex r = new Regex(@”,\s*”);
string[] parts = r.Split(names);   //
One name in each slot

// Replace matched patterns
string s = Regex.Replace(“123 < 456″, @”(\d+) . (\d+)”, “$2
> $1”);   // 456 > 123

VB.NET

Exception Handling

C#

// Split a string based on a pattern
string names = “Michael, Dwight, Jim, Pam”;
Regex r = new Regex(@”,\s*”);
string[] parts = r.Split(names);   // One
name in each slot

‘ Throw an exception
Dim ex As New Exception(“Something is really wrong.”)
Throw  ex 

VB.NET Exception Handling C#

‘ Catch an exception
Try 
  y = 0
  x = 10 / y
Catch ex As Exception When y = 0
Argument and When is optional

  Console.WriteLine(ex.Message)
Finally
  Beep()
End Try

‘ Throw an exception
Dim ex As New Exception(“Something is really wrong.”)
Throw  ex 

‘ Deprecated unstructured error handling
On Error GoTo MyErrorHandler

MyErrorHandler: Console.WriteLine(Err.Description)

‘ Catch an exception
Try 
  y = 0
  x = 10 / y
Catch ex As Exception When y = 0 ‘
Argument and When is optional
  Console.WriteLine(ex.Message)
Finally
  Beep()
End Try

// Throw an exception
Exception up = new Exception(“Something is really wrong.”);
throw up;  // ha ha

‘ Deprecated unstructured error handling
On Error GoTo MyErrorHandler

MyErrorHandler: Console.WriteLine(Err.Description)

// Catch an exception
try
  y = 0;
  x = 10 / y;
}
catch (Exception ex) {   // Argument is
optional, no “When” keyword
 
  Console.WriteLine(ex.Message);
}
finally {
  Microsoft.VisualBasic.Interaction.Beep();
}

// Throw an exception
Exception up = new Exception(“Something is really wrong.”);
throw up;  // ha ha

VB.NET

Namespaces

C#

// Catch an exception
try
  y = 0;
  x = 10 / y;
}
catch (Exception ex) {   // Argument is
optional, no “When” keyword 
  Console.WriteLine(ex.Message);
}
finally {
  Microsoft.VisualBasic.Interaction.Beep();
}

Namespace Harding.Compsci.Graphics 
  …
End Namespace

VB.NET Namespaces C#

‘ or

Namespace Harding.Compsci.Graphics 
  …
End Namespace

Namespace Harding
  Namespace Compsci
    Namespace Graphics 
      …
    End Namespace
  End Namespace
End Namespace

‘ or

Imports Harding.Compsci.Graphics

Namespace Harding
  Namespace Compsci
    Namespace Graphics 
      …
    End Namespace
  End Namespace
End Namespace

namespace Harding.Compsci.Graphics {
  …
}

Imports Harding.Compsci.Graphics

// or

namespace Harding.Compsci.Graphics {
  …
}

namespace Harding {
  namespace Compsci {
    namespace Graphics {
      …
    }
  }
}

// or

using Harding.Compsci.Graphics;

namespace Harding {
  namespace Compsci {
    namespace Graphics {
      …
    }
  }
}

VB.NET

Classes / Interfaces

C#

using Harding.Compsci.Graphics;

Access Modifiers
Public
Private
Friend
Protected
Protected Friend

VB.NET Classes / Interfaces C#

Class Modifiers
MustInherit
NotInheritable

Access Modifiers
Public
Private
Friend
Protected
Protected Friend

Method Modifiers
MustOverride
NotInheritable
Shared
Overridable

Class Modifiers
MustInherit
NotInheritable

‘ All members are Shared
Module

Method Modifiers
MustOverride
NotInheritable
Shared
Overridable

‘ Partial classes
Partial Class Competition
  …
End Class 

‘ All members are Shared
Module

‘ Inheritance
Class FootballGame
  Inherits Competition
  …
End Class 

‘ Partial classes
Partial Class Competition
  …
End Class 

‘ Interface definition
Interface IAlarmClock 
  …
End Interface

‘ Inheritance
Class FootballGame
  Inherits Competition
  …
End Class 

// Extending an interface 
Interface IAlarmClock
  Inherits IClock
  …
End Interface

‘ Interface definition
Interface IAlarmClock
  Sub Ring()
  Property TriggerDateTime() As DateTime
End Interface

// Interface implementation
Class WristWatch 
  Implements IAlarmClock, ITimer 
   …
End Class 

‘ Extending an interface
Interface IAlarmClock
  Inherits IClock
  …
End Interface

Access Modifiers
public
private
internal
protected
protected internal

‘ Interface implementation
Class WristWatch 
  Implements IAlarmClock, ITimer

Class Modifiers
abstract
sealed
static

  Public Sub Ring() Implements IAlarmClock.Ring
    Console.WriteLine(“Wake up!”)
  End Sub

Method Modifiers
abstract
sealed
static
virtual

  Public Property TriggerDateTime As DateTime Implements
IAlarmClock.TriggerDateTime
  …
End Class 

No Module equivalent – just use static class

Access Modifiers
public
private
internal
protected
protected internal

// Partial classes
partial class Competition {
  …
}

Class Modifiers
abstract
sealed
static

// Inheritance
class FootballGame : Competition {
  …
}

Method Modifiers
abstract
sealed
static
virtual

  • // Interface definition*
    interface IAlarmClock {
      …
    }

No Module equivalent – just use static
class

// Extending an interface 
interface IAlarmClock : IClock {
  …
}

// Partial classes
partial class Competition {
  …
}

  • // Interface implementation*
    class WristWatch : IAlarmClock, ITimer {
       …
    }

// Inheritance
class FootballGame : Competition {
  …
}

VB.NET

Constructors / Destructors

C#

// Interface definition
interface IAlarmClock {
  void Ring();
  DateTime CurrentDateTime { get; set; }
}

Class SuperHero
  Private powerLevel As Integer

// Extending an interface 
interface IAlarmClock : IClock {
  …
}

  Public Sub New()
    powerLevel = 0
  End Sub

// Interface implementation
class WristWatch : IAlarmClock, ITimer {

  Public Sub New(ByVal powerLevel As Integer)
    Me.powerLevel = powerLevel
  End Sub

  public void Ring() {
    Console.WriteLine(“Wake up!”);
  }

  Shared Sub New()
    ‘ Shared constructor invoked before 1st
instance is created

  End Sub

  public DateTime TriggerDateTime { get; set; }
  …
}

  Protected Overrides Sub Finalize() 
   ‘ Destructor to free unmanaged
resources

    MyBase.Finalize()
  End Sub
End Class

VB.NET Constructors / Destructors C#

class SuperHero {
  private int powerLevel;

Class SuperHero
  Private powerLevel As Integer

  public SuperHero() {
     powerLevel = 0;
  }

  Public Sub New()
    powerLevel = 0
  End Sub

  public SuperHero(int powerLevel) {
    this.powerLevel = powerLevel; 
  }

  Public Sub New(ByVal powerLevel As Integer)
    Me.powerLevel = powerLevel
  End Sub

  static SuperHero() {
    // Static constructor invoked before 1st
instance is created

  }

  Shared Sub New()
    ‘ Shared constructor invoked before 1st
instance is created
  End Sub

  ~SuperHero() {
    // Destructor implicitly creates a
Finalize method

  }
}

  Protected Overrides Sub Finalize() 
   ‘ Destructor to free unmanaged
resources
    MyBase.Finalize()
  End Sub
End Class

VB.NET

Using Objects

C#

class SuperHero {
  private int powerLevel;

Dim hero As SuperHero = New SuperHero
‘ or
Dim hero As New SuperHero

  public SuperHero() {
     powerLevel = 0;
  }

With hero
  .Name = “SpamMan”
  .PowerLevel = 3
End With

  public SuperHero(int powerLevel) {
    this.powerLevel = powerLevel; 
  }

hero.Defend(“Laura Jones”)
hero.Rest()     ‘ Calling Shared
method

‘ or
SuperHero.Rest()

  static SuperHero() {
    // Static constructor invoked before 1st
instance is created
  }

Dim hero2 As SuperHero = hero  ‘ Both reference the same object
hero2.Name = “WormWoman”
Console.WriteLine(hero.Name)   ‘ Prints
WormWoman

  ~SuperHero() {
    // Destructor implicitly creates a Finalize
method
  }
}

hero = Nothing    ‘ Free
the object

VB.NET Using Objects C#

If hero Is Nothing Then _
  hero = New SuperHero

Dim hero As SuperHero = New SuperHero
‘ or
Dim hero As New SuperHero

Dim obj As Object = New SuperHero
If TypeOf obj Is SuperHero Then _
  Console.WriteLine(“Is a SuperHero object.”)

With hero
  .Name = “SpamMan”
  .PowerLevel = 3
End With

‘ Mark object for quick disposal
Using reader As StreamReader = File.OpenText(“test.txt”)
  Dim line As String = reader.ReadLine()
  While Not line Is Nothing
    Console.WriteLine(line)
    line = reader.ReadLine()
  End While
End Using

hero.Defend(“Laura Jones”)
hero.Rest()     ‘ Calling Shared method
‘ or
SuperHero.Rest()

SuperHero hero = new SuperHero();

Dim hero2 As SuperHero = hero  ‘ Both reference
the same object
hero2.Name = “WormWoman”
Console.WriteLine(hero.Name)   ‘ Prints
WormWoman

// No “With” construct
hero.Name = “SpamMan”;
hero.PowerLevel = 3;

hero = Nothing    ‘ Free the object

hero.Defend(“Laura Jones”);
SuperHero.Rest();   // Calling static
method

If hero Is Nothing Then _
  hero = New SuperHero

SuperHero hero2 = hero;   // Both reference
the same object

hero2.Name = “WormWoman”;
Console.WriteLine(hero.Name);   // Prints
WormWoman

Dim obj As Object = New SuperHero
If TypeOf obj Is SuperHero Then _
  Console.WriteLine(“Is a SuperHero object.”)

hero = null ;   // Free the
object

‘ Mark object for quick disposal
Using reader As StreamReader = File.OpenText(“test.txt”)
  Dim line As String = reader.ReadLine()
  While Not line Is Nothing
    Console.WriteLine(line)
    line = reader.ReadLine()
  End While
End Using

if (hero == null)
  hero = new SuperHero();

SuperHero hero = new SuperHero();

Object obj = new SuperHero(); 
if (obj is SuperHero)
  Console.WriteLine(“Is a SuperHero object.”);

// No “With” but can use object
initializers
SuperHero hero = new SuperHero() { Name = “SpamMan”, PowerLevel = 3 };

// Mark object for quick disposal
using (StreamReader reader = File.OpenText(“test.txt”)) {
  string line;
  while ((line = reader.ReadLine()) != null)
    Console.WriteLine(line);
}

hero.Defend(“Laura Jones”);
SuperHero.Rest();   // Calling static
method

VB.NET

Structs

C#

SuperHero hero2 = hero;   // Both reference the
same object
hero2.Name = “WormWoman”;
Console.WriteLine(hero.Name);   // Prints
WormWoman

Structure StudentRecord
  Public name As String
  Public gpa As Single

hero = null ;   // Free the object

  Public Sub New(ByVal name As String, ByVal gpa As Single)
    Me.name = name
    Me.gpa = gpa
  End Sub
End Structure

if (hero == null)
  hero = new SuperHero();

Dim stu As StudentRecord = New StudentRecord(“Bob”, 3.5)
Dim stu2 As StudentRecord = stu  

Object obj = new SuperHero(); 
if (obj is SuperHero)
  Console.WriteLine(“Is a SuperHero object.”);

stu2.name = “Sue”
Console.WriteLine(stu.name)    ‘ Prints
Bob

Console.WriteLine(stu2.name)  ‘ Prints
Sue

// Mark object for quick disposal
using (StreamReader reader = File.OpenText(“test.txt”)) {
  string line;
  while ((line = reader.ReadLine()) != null)
    Console.WriteLine(line);
}

struct StudentRecord {
  public string name;
  public float gpa;

VB.NET Structs C#

  public StudentRecord(string name, float gpa) {
    this.name = name;
    this.gpa = gpa;
  }
}

Structure Student
  Public name As String
  Public gpa As Single

StudentRecord stu = new StudentRecord(“Bob”, 3.5f);
StudentRecord stu2 = stu;  

  Public Sub New(ByVal name As String, ByVal gpa As Single)
    Me.name = name
    Me.gpa = gpa
  End Sub
End Structure

stu2.name = “Sue”;
Console.WriteLine(stu.name);    // Prints
Bob

Console.WriteLine(stu2.name);   // Prints
Sue

Dim stu As Student = New Student(“Bob”, 3.5)
Dim stu2 As Student = stu  

VB.NET

Properties

C#

stu2.name = “Sue”
Console.WriteLine(stu.name)    ‘ Prints
Bob
Console.WriteLine(stu2.name)  ‘ Prints Sue

‘ Auto-implemented properties are new to VB10
Public Property Name As String
Public Property Size As Integer = -1     ‘ Default value, Get and Set both
Public

struct Student {
  public string name;
  public float gpa;

‘ Traditional property implementation
Private mName As String
Public Property Name() As String
    Get
        Return mName
    End Get
    Set(ByVal value As String)
        mName = value
    End Set
End Property

  public Student(string name, float gpa) {
    this.name = name;
    this.gpa = gpa;
  }
}

‘ Read-only property
Private mPowerLevel As Integer
Public ReadOnly Property PowerLevel() As Integer
    Get
        Return mPowerLevel
    End Get
End Property

Student stu = new Student(“Bob”, 3.5f);
Student stu2 = stu;  

‘ Write-only property
Private mHeight As Double
Public WriteOnly Property Height() As Double
    Set(ByVal value As Double)
        mHeight = If(value < 0, mHeight = 0, mHeight = value)
    End Set
End Property

stu2.name = “Sue”;
Console.WriteLine(stu.name);    // Prints
Bob
Console.WriteLine(stu2.name);   // Prints
Sue

// Auto-implemented properties
public string Name { get; set; }
public int Size { get; protected set; }     // Set default value in constructor

VB.NET Properties C#

// Traditional property implementation
private string name;
public string Name {
  get {
    return name;
  }
  set {
    name = value;
  }
}

‘ Auto-implemented properties are new to
VB10
Public Property Name As String
Public Property Size As Integer = -1     ‘
Default value, Get and Set both Public

// Read-only property
private int powerLevel;
public int PowerLevel {
  get {
    return powerLevel;
  }
}

‘ Traditional property implementation
Private mName As String
Public Property Name() As String
    Get
        Return mName
    End Get
    Set(ByVal value As String)
        mName = value
    End Set
End Property

// Write-only property
private double height;
public double Height {
  set {
    height = value < 0 ? 0 : value;
  }
}

‘ Read-only property
Private mPowerLevel As Integer
Public ReadOnly Property PowerLevel() As Integer
    Get
        Return mPowerLevel
    End Get
End Property

VB.NET

Delegates / Events

C#

‘ Write-only property
Private mHeight As Double
Public WriteOnly Property Height() As Double
    Set(ByVal value As Double)
        mHeight = If(value < 0, mHeight = 0, mHeight = value)
    End Set
End Property

Delegate Sub MsgArrivedEventHandler(ByVal message As String)

// Auto-implemented properties
public string Name { get; set; }
public int Size { get; protected set; }     // Set default value in constructor

Event MsgArrivedEvent As MsgArrivedEventHandler

// Traditional property implementation
private string name;
public string Name {
  get {
    return name;
  }
  set {
    name = value;
  }
}

‘ or to define an event which declares a delegate
implicitly

Event MsgArrivedEvent(ByVal message As String)

// Read-only property
private int powerLevel;
public int PowerLevel {
  get {
    return powerLevel;
  }
}

AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback
‘ Won’t throw an exception if obj is
Nothing
**
RaiseEvent MsgArrivedEvent(“Test message”) RemoveHandler MsgArrivedEvent, AddressOf**
My_MsgArrivedCallback

// Write-only property
private double height;
public double Height {
  set {
    height = value < 0 ? 0 : value;
  }
}

Imports System.Windows.Forms

VB.NET Delegates / Events C#

Dim WithEvents MyButton As Button   ‘ WithEvents can’t be used on local
variable

MyButton = New Button

Delegate Sub MsgArrivedEventHandler(ByVal message As String)

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

Event MsgArrivedEvent As MsgArrivedEventHandler

delegate void MsgArrivedEventHandler(string message);

‘ or to define an event which declares a delegate
implicitly
Event MsgArrivedEvent(ByVal message As String)

event MsgArrivedEventHandler MsgArrivedEvent;

AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback
‘ Won’t throw an exception if obj is Nothing
RaiseEvent MsgArrivedEvent(“Test message”)
RemoveHandler MsgArrivedEvent, AddressOf
My_MsgArrivedCallback

// Delegates must be used with events in C#

Imports System.Windows.Forms

MsgArrivedEvent += new
MsgArrivedEventHandler(My_MsgArrivedEventCallback);
MsgArrivedEvent(“Test message”);    //
Throws exception if obj is null

MsgArrivedEvent -= new
MsgArrivedEventHandler(My_MsgArrivedEventCallback);

Dim WithEvents MyButton As Button   ‘
WithEvents can’t be used on local variable
MyButton = New Button

using System.Windows.Forms;

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

Button MyButton = new Button(); 
MyButton.Click += new System.EventHandler(MyButton_Click);

delegate void MsgArrivedEventHandler(string message);

private void MyButton_Click(object sender,
System.EventArgs e) {
  MessageBox.Show(this, “Button was clicked”, “Info”,
    MessageBoxButtons.OK, MessageBoxIcon.Information);
}

event MsgArrivedEventHandler MsgArrivedEvent;

VB.NET

Generics

C#

// Delegates must be used with events in
C#

‘ Enforce accepted data type at compile-time
Dim numbers As New List(Of Integer)
numbers.Add(2)
numbers.Add(4)
DisplayList(Of Integer)(numbers)

MsgArrivedEvent += new
MsgArrivedEventHandler(My_MsgArrivedEventCallback);
MsgArrivedEvent(“Test message”);    // Throws
exception if obj is null
MsgArrivedEvent -= new
MsgArrivedEventHandler(My_MsgArrivedEventCallback);

‘ Subroutine can display any type of List
Sub DisplayList(Of T)(ByVal list As List(Of T))
    For Each item As T In list
        Console.WriteLine(item)
    Next
End Sub

using System.Windows.Forms;

‘ Class works on any data type
Class SillyList(Of T)
    Private list(10) As T
    Private rand As New Random

Button MyButton = new Button(); 
MyButton.Click += new System.EventHandler(MyButton_Click);

    Public Sub Add(ByVal item As T)
        list(rand.Next(10)) = item
    End Sub

private void MyButton_Click(object sender, System.EventArgs e) {
  MessageBox.Show(this, “Button was clicked”, “Info”,
    MessageBoxButtons.OK, MessageBoxIcon.Information);
}

    Public Function GetItem() As T
        Return list(rand.Next(10))
    End Function
End Class

VB.NET Generics C#

‘ Limit T to only types that implement
IComparable

Function Maximum(Of T As IComparable)(ByVal ParamArray items As
T()) As T
    Dim max As T = items(0)
    For Each item As T In items
        If item.CompareTo(max) > 0 Then max = item
    Next
    Return max
End Function

‘ Enforce accepted data type at compile-time

// Enforce accepted data type at compile-time
List<int> numbers = new List<int>();
numbers.Add(2);
numbers.Add(4);
DisplayList<int>(numbers);

Dim numbers As New List(Of Integer)
numbers.Add(2)
numbers.Add(4)
DisplayList(Of Integer)(numbers)

// Function can display any type of List
void DisplayList<T>(List<T> list) {
    foreach (T item in list)
        Console.WriteLine(item);
}

‘ Subroutine can display any type of List

// Class works on any data type
class SillyList<T> {
    private T[] list = new T[10];
    private Random rand = new Random();

Sub DisplayList(Of T)(ByVal list As List(Of T))
    For Each item As T In list
        Console.WriteLine(item)
    Next
End Sub

    public void Add(T item) {
        list[rand.Next(10)] = item;
    }

‘ Class works on any data type
Class SillyList(Of T)
    Private list(10) As T
    Private rand As New Random

    public T GetItem() {
        return list[rand.Next(10)];
    }
}

    Public Sub Add(ByVal item As T)
        list(rand.Next(10)) = item
    End Sub

// Limit T to only types that implement
IComparable

T Maximum<T>(params T[] items) where T :
IComparable<T>
{
    T max = items[0];
    foreach (T item in items)
        if (item.CompareTo(max) > 0)
            max = item;
    return max;
}

    Public Function GetItem() As T
        Return list(rand.Next(10))
    End Function
End Class

VB.NET

LINQ

C#

‘ Limit T to only types that implement
IComparable
Function Maximum(Of T As IComparable)(ByVal ParamArray items As
T()) As T
    Dim max As T = items(0)
    For Each item As T In items
        If item.CompareTo(max) > 0 Then max = item
    Next
    Return max
End Function

Dim nums() As Integer = {5, 8, 2, 1, 6}

// Enforce accepted data type at compile-time

‘ Get all numbers in the array above
4

Dim results = From value In nums
                  Where value > 4
                  Select value

List<int> numbers = new List<int>();
numbers.Add(2);
numbers.Add(4);
DisplayList<int>(numbers);

Console.WriteLine(results.Count())    
3

Console.WriteLine(results.First())    
5

Console.WriteLine(results.Last())    
6

Console.WriteLine(results.Average())     ‘ 6.33333

// Function can display any type of List
void DisplayList<T>(List<T> list) {
    foreach (T item in list)
        Console.WriteLine(item);
}

‘ Displays 5 8 6
For Each n As Integer In results
    Console.Write(n & ” “)
Next

// Class works on any data type
class SillyList<T> {
    private T[] list = new T[10];
    private Random rand = new Random();

results = results.Intersect({5, 6, 7})     ‘ 5 6
results = results.Concat({5, 1, 5})     ‘ 5 6 5 1 5
results = results.Distinct()     ‘ 5 6
1

    public void Add(T item) {
        list[rand.Next(10)] = item;
    }

Dim Students() As Student = {
    New Student With {.Name = “Bob”, .GPA = 3.5},
    New Student With {.Name = “Sue”, .GPA = 4.0},
    New Student With {.Name = “Joe”, .GPA = 1.9}
}

    public T GetItem() {
        return list[rand.Next(10)];
    }
}

‘ Get an ordered list of all students by GPA
with GPA >= 3.0

Dim goodStudents = From s In Students
            Where s.GPA >= 3.0
            Order By s.GPA Descending
            Select s

// Limit T to only types that implement
IComparable
T Maximum<T>(params T[] items) where T :
IComparable<T>
{
    T max = items[0];
    foreach (T item in items)
        if (item.CompareTo(max) > 0)
            max = item;
    return max;
}

Console.WriteLine(goodStudents.First.Name)     ‘ Sue

VB.NET LINQ C#

int[] nums = { 5, 8, 2, 1, 6 };

Dim nums() As Integer = {5, 8, 2, 1, 6}

// Get all numbers in the array above
4

var results = from value in nums
                where value > 4
                select value;

‘ Get all numbers in the array above 4
Dim results = From value In nums
                  Where value > 4
                  Select value

Console.WriteLine(results.Count());     // 3
Console.WriteLine(results.First());     // 5
Console.WriteLine(results.Last());     // 6
Console.WriteLine(results.Average());     // 6.33333

Console.WriteLine(results.Count())     ‘
3
Console.WriteLine(results.First())     ‘
5
Console.WriteLine(results.Last())     ‘
6
Console.WriteLine(results.Average())     ‘
6.33333

// Displays 5 8 6
foreach (int n in results)
    Console.Write(n + ” “);

‘ Displays 5 8 6
For Each n As Integer In results
    Console.Write(n & ” “)
Next

results = results.Intersect(new[] {5, 6, 7});     // 5 6
results = results.Concat(new[] {5, 1, 5});     // 5 6 5 1 5
results = results.Distinct();     // 5 6
1

results = results.Intersect({5, 6, 7})     ‘ 5
6
results = results.Concat({5, 1, 5})     ‘ 5 6
5 1 5
results = results.Distinct()     ‘ 5 6
1

Student[] Students = {
    new Student{ Name = “Bob”, GPA = 3.5 },
    new Student{ Name = “Sue”, GPA = 4.0 },
    new Student{ Name = “Joe”, GPA = 1.9 }
};

Dim Students() As Student = {
    New Student With {.Name = “Bob”, .GPA = 3.5},
    New Student With {.Name = “Sue”, .GPA = 4.0},
    New Student With {.Name = “Joe”, .GPA = 1.9}
}

// Get an ordered list of all students by
GPA with GPA >= 3.0

var goodStudents = from s in Students
            where s.GPA >= 3.0
            orderby s.GPA descending
            select s;

‘ Get an ordered list of all students by GPA with
GPA >= 3.0
Dim goodStudents = From s In Students
            Where s.GPA >= 3.0
            Order By s.GPA Descending
            Select s

Console.WriteLine(goodStudents.First().Name);     // Sue

Console.WriteLine(goodStudents.First.Name)     ‘ Sue

VB.NET

Console I/O

C#

int[] nums = { 5, 8, 2, 1, 6 };

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.”)

// Get all numbers in the array above 4
var results = from value in nums
                where value > 4
                select value;

Dim c As Integer
c = Console.Read()    ‘ Read single
char

Console.WriteLine(c)   ‘ Prints 65 if user
enters “A”

Console.WriteLine(results.Count());     //
3
Console.WriteLine(results.First());     //
5
Console.WriteLine(results.Last());     //
6
Console.WriteLine(results.Average());     //
6.33333

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);
// or
Console.WriteLine(name + ” is ” + age + ” years old.”);

// Displays 5 8 6
foreach (int n in results)
    Console.Write(n + ” “);

int c = Console.Read();  // Read single
char

Console.WriteLine(c);    // Prints 65 if
user enters “A”

results = results.Intersect(new[] {5, 6, 7});     // 5 6
results = results.Concat(new[] {5, 1, 5});     // 5 6 5 1 5
results = results.Distinct();     // 5 6
1

VB.NET

File I/O

C#

Student[] Students = {
    new Student{ Name = “Bob”, GPA = 3.5 },
    new Student{ Name = “Sue”, GPA = 4.0 },
    new Student{ Name = “Joe”, GPA = 1.9 }
};

Imports System.IO

// Get an ordered list of all students by GPA with
GPA >= 3.0
var goodStudents = from s in Students
            where s.GPA >= 3.0
            orderby s.GPA descending
            select s;

‘ Write out to text file
Dim writer As StreamWriter = File.CreateText(“c:\myfile.txt”)
writer.WriteLine(“Out to file.”)
writer.Close()

Console.WriteLine(goodStudents.First().Name);     // Sue

‘ 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()

VB.NET Console I/O C#

‘ 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()

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.”)

‘ Read from binary file
Dim binReader As New BinaryReader(File.OpenRead(“c:\myfile.dat”))
str = binReader.ReadString()
num = binReader.ReadInt32()
binReader.Close()

Dim c As Integer
c = Console.Read()    ‘ Read single char
Console.WriteLine(c)   ‘ Prints 65 if user enters
“A”

using System.IO;

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);
// or
Console.WriteLine(name + ” is ” + age + ” years old.”);

// Write out to text file
StreamWriter writer = File.CreateText(“c:\\myfile.txt”);
writer.WriteLine(“Out to file.”);
writer.Close();

int c = Console.Read();  // Read single
char
Console.WriteLine(c);    // Prints 65 if user
enters “A”

// 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();

VB.NET File I/O C#

// 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();

Imports System.IO

// Read from binary file
BinaryReader binReader = new
BinaryReader(File.OpenRead(“c:\\myfile.dat”));
str = binReader.ReadString();
num = binReader.ReadInt32();
binReader.Close();

‘ 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()

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();

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图