جناب __H2__، اول از همه، فوق العاده از شما تشکر میکنم...
با مواردی که اشاره کردید موافقم، بجز موارد زیر :



stackalloc <-> برای تخصیص حافظه در حالت کد نویسی غیر امن، در VB.Net (والبته در حالت مدیریت شده) میتوان از دستور New استفاده کرد.
کلمه new در بیسیک.نت، شباهتی به stackalloc در سی# نداره. خودتون تاحدودی تفاوتش رو گفتید، من هم تا حدودیش رو بگم : stackalloc یک حافظه ی stack را برای یک اشاره گر اخذ میکند. ( حافظه stack نه heap و البته برای اشاره گر )



volatile <-> استفاده مستقیم از کلاسس System.MTAThreadAttribute
شباهتی بین این دو ندیدم.



sizeof <-> استفاده مستقیم از تابع System.Runtime.InteropServices.Marshal.SizeOf
بلد نبودم به کمک همین متد در بیسیک.نت، اندازه یک نوع داده ( مثل Integer ) رو بدون ایجاد یک شئ از اون، بدست بیارم! اگه کسی لطف کرد، کدش رو بگذاره.



ReDim <-> استفاده مستقیم از تابع System.Array.Resize
این مورد رو نمیدونستم... واقعا ممنونم.


Erase <-> بدون معادل در #C
اگر درست فهمیده باشم، مثلا مثل زیر ( خط پنجم ) :

int[] A = new int[3];
A[0] = 12;
A[1] = 13;
A[2] = 14;
A = new int[3];
MessageBox.Show( A[0].ToString() );




Stop <-> بدون معادل در #C، ولی در خیلی از مواقع (نه تمام موارد) میتوان از نقاط توقف (F9) استفاده کرد.
معادلش در دات نت، متد System.Diagnostics.Debugger.Break.



Mid <-> شکستن کد و استفاده ترکیبی از اعضای کلاسس String
یک مثال از معادلش :
MessageBox.Show( "NO Way".Substring( 3 ) );




\ <-> بدون معادل قطعی در #C، ولی میتوان در بیشتر موارد از تابع System.Math.DivRem استفاده کرد.
معادلش در سی# :

( int )( 11 / 4 )




- VB.Net اجازه تعریف متدی هم نام کلاسس پایه را نمیدهد مگر به طور واضح با Shadows بیان شود ولی این کلمه برای #C لازم نیست و در تبدیلات باید حذف یا اضافه شود.
اگر درست فهمیده باشم، در سی#، استفاده از کلمه کلیدی new



در نتیجه در تبدیل به #C حواسشان باشد در نوشتن رشته های String خام در کدهای #C نباید بنویسید "C:\test.txt" بلکه کد درستش "C:\\test.txt" است! خود کامپایلر درستش میکند، این قضیه در #C مثل درج جفت کوتیشن است.
در سی#، استفاده از علامت @ قبل از رشته باعث میشه که وجود چنین کاراکترهائی، نادیده گرفته بشه.



منم براتون آرزوی موفقیت لحظه افزون دارم :)