惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
U
Unit 42
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
H
Help Net Security
Recent Announcements
Recent Announcements
P
Privacy & Cybersecurity Law Blog
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
博客园 - 聂微东
S
Securelist
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog

博客园 - 憋大招的cat

Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)-----(转) Windows mobile应用程序开发环境搭建(C++) AJAX初探-XMLHTTP与服务端交互的小示例修正 SQL Server维护中Insert语句的生成工具 整理C# 二进制,十进制,十六进制 互转附加(BCC异或校验法) 转一个数据导入导出功能的帖子(转链) 通过控制按键来控制编辑框控件的小BUG - 憋大招的cat - 博客园 近期项目知识点总结之AJAX实用联动实例-(文1) AutoCompleteExtender控件使用示例以及BUG vs2005中利用自动生成数据集、ObjectDataSource、Gridview进行组合查询 SQL Server 2005 中附加只有mdf文件的数据库(修复置疑的数据库) 防止利用Xp_cmdshell进行漏洞攻击 SQL复制数据的强大命令集-BCP知识点之二 SQL复制数据的强大命令集-BCP知识点之一 Windows XP Home Edition安裝 IIS 的方法 收缩数据库出现的问题与解决方案 理解杀毒软件技术的意义 脱壳、虚拟、启发式介绍 WebForm中弹出页面关闭的同时返回值 本地计算机上的MSSQLSERVER服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的
c#.NET和VB.NET语法的比较
憋大招的cat · 2007-08-01 · via 博客园 - 憋大招的cat

VB.NET

C#

Comments
' Single line only
Rem Single line only
Data Types


Boolean
Byte
Char  
Short, Integer, Long
Single, Double
Decimal
Date


Object
String

Dim x As Integer
Console.WriteLine(x.GetType())    
Console.WriteLine(TypeName(x)) 


Dim numDecimal As Single = 3.5
Dim numInt As Integer
numInt = CType(numDecimal, Integer)  
numInt = CInt(numDecimal) 
numInt = Int(numDecimal)   


bool
byte, sbyte
char  
short, ushort, int, uint, long, ulong
float, double
decimal
DateTime  


object
string

int x;
Console.WriteLine(x.GetType());    
Console.WriteLine(typeof(int));     


double numDecimal = 3.5;
int numInt = (int) numDecimal;  

Constants
Const MAX_STUDENTS As Integer = 25 const int MAX_STUDENTS = 25;
Enumerations
Enum Action
  Start 
  [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 Console.WriteLine(a)    

Console.WriteLine(Status.Pass)     

Dim s As Type = GetType(Status)
Console.WriteLine([Enum].GetName(s, Status.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);    Console.WriteLine(Status.Pass);   

Operators


=  <  >  <=  >=  <>


+  -  *  /
Mod


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


And  AndAlso  Or  OrElse  Not  <<  >>


And  AndAlso  Or  OrElse  Not

Note: AndAlso and OrElse are for short-circuiting logical evaluations


&


==  <  >  <=  >=  !=


+  -  *  /


Math.Pow(x, y)


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


&  |  ^   ~  <<  >>


&&  ||   !

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


+

Choices

greeting = IIf(age < 20, "What's up?", "Hello")


If language = "VB.NET" Then langType = "verbose"


If x <> 100 Then x *= 5 : y *= 2  


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  
  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) {   
  x *= 5;
  y *= 2;
}


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


Dim names As String() = {"Fred", "Sue", "Barney"}
For Each s As String In names
  Console.WriteLine(s)
Next

Pre-test Loops:  


while (i < 10)
  i++;

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

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

string[] 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


Dim names(4) As String
names(0) = "David"
names(5) = "Bobby" 


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

int[] nums = {1, 2, 3};
for (int i = 0; i < nums.Length; i++)
  Console.WriteLine(nums[i]);


string[] names = new string[5];
names[0] = "David";
names[5] = "Bobby";  


string[] names2 = new string[7];
Array.Copy(names, names2, names.Length);  

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

 
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    
TestFunc(a, b, c)
Console.WriteLine("{0} {1} {2}", a, b, c)  


Function Sum(ByVal ParamArray nums As Integer()) As Integer
  Sum = 0 
  For Each i As Integer In nums
    Sum += i
  Next
End Function   Dim total As Integer = Sum(4, 3, 2, 1)  


Sub SayHello(ByVal name As String, Optional ByVal prefix As String = "")
  Console.WriteLine("Greetings, " & prefix & " " & name)
End Sub

SayHello("Strangelove", "Dr.")
SayHello("Madonna")


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


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

 
void SayHello(string name, string prefix) {
  Console.WriteLine("Greetings, " + prefix + " " + name);

void SayHello(string name) {
  SayHello(name, "");
}

Exception Handling


On Error GoTo MyErrorHandler
...
MyErrorHandler: Console.WriteLine(Err.Description)

Dim ex As New Exception("Something is really wrong.")
Throw  ex 

Try 
  y = 0
  x = 10 / y
Catch ex As Exception When y = 0
  Console.WriteLine(ex.Message)
Finally
  Beep()
End Try

Exception up = new Exception("Something is really wrong.");
throw up; 

try
  y = 0;
  x = 10 / y;
}
catch (Exception ex) {    
  Console.WriteLine(ex.Message);
}
finally {
 
}

Namespaces

Namespace Harding.Compsci.Graphics 
  ...
End Namespace

Namespace Harding
  Namespace Compsci
    Namespace Graphics 
      ...
    End Namespace
  End Namespace
End Namespace

Import Harding.Compsci.Graphics

namespace Harding.Compsci.Graphics {
  ...
}

namespace Harding {
  namespace Compsci {
    namespace Graphics {
      ...
    }
  }
}

using Harding.Compsci.Graphics;

Classes / Interfaces


Public
Private
Friend                   
Protected
Protected Friend
Shared


Class FootballGame
  Inherits Competition
  ...
End Class 


Interface IAlarmClock 
  ...
End Interface


Interface IAlarmClock
  Inherits IClock
  ...
End Interface


Class WristWatch 
  Implements IAlarmClock, ITimer 
   ...
End Class 


public
private
internal
protected
protected internal
static


class FootballGame : Competition {
  ...
}


interface IAlarmClock {
  ...
}


interface IAlarmClock : IClock {
  ...
}


class 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 () 
   
    MyBase.Finalize()
  End Sub
End Class

class SuperHero {
  private int _powerLevel;

  public SuperHero() {
     _powerLevel = 0;
  }

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

  ~SuperHero() {
   
  }
}

Objects

Dim hero As SuperHero = New SuperHero
With hero
  .Name = "SpamMan"
  .PowerLevel = 3
End With

hero.Defend("Laura Jones")
hero.Rest()    

SuperHero.Rest()

Dim hero2 As SuperHero = hero 
hero2.Name = "WormWoman"
Console.WriteLine(hero.Name)  

hero = Nothing   

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


hero.Name = "SpamMan";
hero.PowerLevel = 3;

hero.Defend("Laura Jones");
SuperHero.Rest();  


SuperHero hero2 = hero;  
hero2.Name = "WormWoman";
Console.WriteLine(hero.Name);  

hero = null ;  

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)    
Console.WriteLine(stu2.name)  

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);   
Console.WriteLine(stu2.name);  

Properties

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

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


Event MsgArrivedEvent(ByVal message As String)

AddHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback
RaiseEvent MsgArrivedEvent("Test message")
RemoveHandler MsgArrivedEvent, AddressOf My_MsgArrivedCallback

Imports System.Windows.Forms

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

delegate void MsgArrivedEventHandler(string message);

event MsgArrivedEventHandler MsgArrivedEvent;

MsgArrivedEvent += new MsgArrivedEventHandler(My_MsgArrivedEventCallback);
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


vbCrLf, vbCr, vbLf, vbNewLine
vbNullString
vbTab
vbBack
vbFormFeed
vbVerticalTab
""
Chr(65) 

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) 

Console.WriteLine(name & " is " & age & " years old.")

Dim c As Integer
c = Console.Read()   
Console.WriteLine(c)  


\n, \r
\t
\\
\"

Convert.ToChar(65) 
(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);

Console.WriteLine(name + " is " + age + " years old.");


int c = Console.Read(); 
Console.WriteLine(c);   

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