04-26-2011، 07:20 PM
لاسهای static
کلاسها به صورت Static قابل تعریف نیستند مگر اینکه تمام اعضای آنها Static باشند.که این امر بسیار شبیه به مفهوم مدل در زبانهای رویهای است.(زبان رویهای : یک زبان برنامه نویسی که در آن عنصر اصلی برنامه نویسی یک زیربرنامهاست.مانند زبانهای C، پاسکال و...)
یک شکل جدید از تکرار کننده با استفاده از سازنده توابع
یک شکل جدید از iterator(تکرار کننده)، با استفاده از ساختار yield return بسیار شبیه به yield زبان Python.
[/code]
// Method that takes an iterable input (possibly an array) and returns all even numbers.
public static IEnumerable<int> GetEven(IEnumerable<int> numbers)
{
foreach (int i in numbers)
{
if (i % 2 == 0) yield return i;
}
}
Delegate covariance and contravariance
تبدیل گروههای متد به نوع Deletage در برگشت دارای covariant و در انواع پارامترها دارای contravariant هستند.
اکسسورهای یک خاصیت(get و set) میتوانند دارای سطح دسترسی متفاوتی باشند.
مثال :
نکته مهم : سطح دسترسی خاصیت نمیتواند بالاتر از سطح دسترسی اکسسورها باشد.به عنوان مثال private بودن خاصیت و public بودن اکسسور باعث بروز خطا میشود.
کلاسها به صورت Static قابل تعریف نیستند مگر اینکه تمام اعضای آنها Static باشند.که این امر بسیار شبیه به مفهوم مدل در زبانهای رویهای است.(زبان رویهای : یک زبان برنامه نویسی که در آن عنصر اصلی برنامه نویسی یک زیربرنامهاست.مانند زبانهای C، پاسکال و...)
یک شکل جدید از تکرار کننده با استفاده از سازنده توابع
یک شکل جدید از iterator(تکرار کننده)، با استفاده از ساختار yield return بسیار شبیه به yield زبان Python.
[/code]
// Method that takes an iterable input (possibly an array) and returns all even numbers.
public static IEnumerable<int> GetEven(IEnumerable<int> numbers)
{
foreach (int i in numbers)
{
if (i % 2 == 0) yield return i;
}
}
کد:
Delegateهای ناشناس
Delegateهای ناشناس که عملکردهای محدودی را در #C به وجود میآورند.کد کنار بدنه Deletage ناشناس، دسترسی کامل برای خواندن یا نوشتن در متغیرهای عمومی، پارامترهای توابع و اعضای کلاسهای دارای محدوده Deletage را دارد ولی پارامترهای out و ref را پشتیبانی نمیکند. برای مثال :
[code]
int SumOfArrayElements(int[] array)
{
int sum = 0;
Array.ForEach(
array,
delegate(int x)
{
sum += x;
}
);
return sum;
}
تبدیل گروههای متد به نوع Deletage در برگشت دارای covariant و در انواع پارامترها دارای contravariant هستند.
اکسسورهای یک خاصیت(get و set) میتوانند دارای سطح دسترسی متفاوتی باشند.
مثال :
کد:
string status = string.Empty;
public string Status
{
get { return status; } // anyone can get value of this property,
protected set { status = value; } // but only derived classes can change it
}
نکته مهم : سطح دسترسی خاصیت نمیتواند بالاتر از سطح دسترسی اکسسورها باشد.به عنوان مثال private بودن خاصیت و public بودن اکسسور باعث بروز خطا میشود.
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg