PDA

View Full Version : 1001 نکته در مورد net. 4 و visual stdio2010و C#‎4



r00tkit
چهارشنبه 05 اسفند 1388, 16:48 عصر
سلام
هر کی هرچیز در مورد net.4 ,و C#‎ 4و visual stadio2010 میدونه اینجا بنویسه: البته چیز هایی که توی نسخه های قبلی نمی شد انجام داد

هفته ی قبل Visual Studio 2010 and .NET Framework 4 Release Candidate
Releaseشد.http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx

r00tkit
چهارشنبه 05 اسفند 1388, 17:23 عصر
شاید شاده ترین چیزی که به C#‎ اضافه شده Named and Optional Argumentsباشه
که ما در زبان های دیگه این ویژگی رود دیده بوریم

Named argument=این ویژگی به برنامه نویس این امکان رو می ده که parameter هارو با اسم انها مقدار بده عوض اینکه با موقعيت پارامتر ها توی لیست parameter های تابع

Optional argument= این امکان رو می ده که برنامه نویس مقدار چند پارامتر رو وارد نکنه

وقتی شما از هر دوی این ها استفاده می کنید argument ها با ترتیبی که درلیست argument امدن ارزشیابی می شن نه به ترتیبی که در ایست parameter ها امدن

با به کار بردن هر دوی این ها ما می تونیم ان پارامتر های خاصی رو که در لیست ptional parameter هستنند رو مقدار دهی کنیم این کار باعث اسون شدن فراخوانی COM interfaces می شه مثل Microsoft Office Automation APIs

هر دو تکنیک می تونن در methods, indexers, constructors, and delegates استفاده شن

مثال:Named Arguments


class NamedExample
{
static void Main(string[] args)
{
Console.WriteLine(CalculateBMI(123, 64));
.
Console.WriteLine(CalculateBMI(weight: 123, height: 64));
Console.WriteLine(CalculateBMI(height: 64, weight: 123));
Console.WriteLine(CalculateBMI(123, height: 64));
}
static int CalculateBMI(int weight, int height)
{
return (weight * 703) / (height * height);
}
}
مثال:Optional Arguments



namespace OptionalNamespace
{
class OptionalExample
{
static void Main(string[] args)
{

ExampleClass anExample = new ExampleClass();
anExample.ExampleMethod(1, "One", 1);
anExample.ExampleMethod(2, "Two");
anExample.ExampleMethod(3);
ExampleClass anotherExample = new ExampleClass("Provided name");
anotherExample.ExampleMethod(1, "One", 1);
anotherExample.ExampleMethod(2, "Two");
anotherExample.ExampleMethod(3);
anExample.ExampleMethod(3, optionalint: 4);
}
}
class ExampleClass
{
private string _name;
public ExampleClass(string name = "Default name")
{
_name = name;
}
public void ExampleMethod(int required, string optionalstr = "default string",
int optionalint = 10)
{
Console.WriteLine("{0}: {1}, {2}, and {3}.", _name, required, optionalstr,
optionalint);
}
}
}

r00tkit
چهارشنبه 05 اسفند 1388, 17:56 عصر
In-Process Side-by-Side Execution
با .NET Framework version 4 شما می تونید با میزباتی In-Process Side-by-Side چندین versions از CLR رو داخل یه process استفاد کنید به طور پیش فرض managed COM components در ان versions اجرا می شن که با ان ساخته شدن صرفنظر از اینکه چه نسخه ای از net. انها رو فراخوانی می کنه

چکونگی استفاده :
در application configuration file (http://msdn.microsoft.com/en-us/library/1xtk877y%28VS.100%29.aspx) در مسیر اجرایی برنامه مطابق الگو clr مورد نظر رو اضافه کنید:



<configuration>
<startup >
<supportedRuntime version="v2.0.5727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>


برای مثال و توضیحات بیشتر به http://msdn.microsoft.com/en-us/library/ee518876%28VS.100%29.aspx سر بزنید

r00tkit
چهارشنبه 05 اسفند 1388, 20:42 عصر
شما می تونید یه registry key بسازید به صورت فرار که بعد ازrestart شدن کامپیوتر دیگه وجود ندره که به ان volatile key می گن با RegistryKey.CreateSubKey و با overload دی که
option زیر رو قبول می کنه



[FlagsAttribute]
public enum RegistryOptions


Microsoft.Win32.RegistryOptions.Volatile


مثال:



RegistryKey volatilekey= Registry.CurrentUser.CreateSubKey("newkey",RegistryKeyPermissionCheck.ReadWriteSubTree, Microsoft.Win32.RegistryOptions.Volatile);

r00tkit
چهارشنبه 05 اسفند 1388, 20:45 عصر
string.IsNullOrWhiteSpace
برای مشخص کردن null یا String.Emptyویا space بودن string




static void Main(string[] args)
{

Console.WriteLine(string.IsNullOrWhiteSpace(" "));
Console.WriteLine(string.IsNullOrWhiteSpace(string .Empty));
string d = null;
Console.WriteLine(string.IsNullOrWhiteSpace(d));
}

r00tkit
چهارشنبه 05 اسفند 1388, 21:00 عصر
مشخص کردن 64bit یا 32bit بودن ویندوز




Environment.Is64BitOperatingSystem



مثال:




if (Environment.Is64BitOperatingSystem)
{
Console.WriteLine("OS is 64bit");
}
else
{
Console.WriteLine("OS is 32bit");
}

mehdi.mousavi
سه شنبه 25 اسفند 1388, 01:29 صبح
سلام.
این عنوان مقاله ای هستش که اینجا (http://galilyou.blogspot.com/2010/03/new-but-not-so-obvious-features-in-net.html) منتشر شده.
به یکبار خوندنش می ارزه.

موفق باشید.