یک MessageBox بهتر
موفق باشید!
آموزش LINQ بخش دوم
کلمات کلیدی مربوط به LINQ را به تعبیر دقیقتر Contextual Keyword میگویند. به این خاطر که با کلمات کلیدی زبان C# که با ارائه سی شارپ 1 ارائه شدند کمی متفاوت هستند.این کلمات کلیدی اگر در مکان صحیح خود استفاده شوند رفتاری شبیه کلمات کلیدی دارند در غیر اینصورت کاربرد کلمات کلیدی را ندارند.کلمه کلیدی yeild اگر به همراه return بیاید رفتار مورد انتظار ما را برآورده میکند در غیر اینصورت میتواند همچون نام متغیر در برنامه مورد استفاده قرار بگیرد.
var yield = 10; yield return "1";
کلاینت سبک تلگرام به زبان سی شارپ
ReSharper 9 و پشتیبانی از C# 6.0
زبان برنامهنویسی Nim
- نیم یک زبان برنامهنویسی شئگرا است
- کامپایلر این زبان به طور خودکار کدهای زبان C را تولید میکند
- سینتکس این زبان مشابه با زبان پایتون است
- همانند زبانهای Go و Rust، از Strong Types استفاده میکند
- یک زبان برنامهنویسی دستوری و اصطلاحاً Statically Typed است
Extension Method در سی شارپ
یکی
از ویژگیهای جدید اضافه شده به سی شارپ 9، Attributes on
local functions نام دارد و این توانایی را به ما میدهد تا بر روی متدهای محلی که
درون متدها تعریف میشوند، Attributes قرار دهیم. قابلیت local functions در نسخه 7 سی شارپ اضافه شدهاست و با استفاده از این قابلیت میتوانیم درون یک متد، تابع دیگری را تعریف کنیم و در همان متد، از آن تابع درونی
استفاده کنیم. در واقع تابع درونی، لوکال متد بیرونی است و در خارج از متد بیرونی،
قابل دسترسی نیست. مانند مثال زیر:
// Main method public static void Main() { // Local Function void AddValue(int a, int b) { Console.WriteLine("Value of a is: " + a); Console.WriteLine("Value of b is: " + b); Console.WriteLine("Sum of a and b is: {0}", a + b); Console.WriteLine(); } // Calling Local function AddValue(20, 40); AddValue(40, 60); }
برای بررسی این ویژگی جدید سی شارپ 9.0، از یک مثال استفاده میکنیم. فرض کنید یک برنامهی کنسول را داریم و میخواهیم یک قطعه کد فقط در حالتی در خروجی نوشته شود که برنامه در حالت دیباگ اجرا شده باشد و اگر در حالت ریلیز باشد، در خروجی مشاهده نشود. قبل از نسخهی 9.0 سی شارپ، مجبور هستیم از directive های کامپایلر زبان استفاده کنیم و از طریق آن به کامپایلر بفهمانیم که چه زمانی این قطعه کد را کامپایل کند. مانند مثال زیر:
static void Main(string[] args) { static void DoAction() { // DoAction Console.WriteLine("DoAction..."); } #if DEBUG DoAction(); #endif }
اما با استفاده قابلیت اضافه شدهی در این نسخه از سی شارپ، میتوان روی متدهای محلی هم Attributes اضافه کرد. پس میتوانیم از ConditionalAttribute استفاده کنیم و آن را در بالای متد محلی قرار دهیم و از کامپایلر بخواهیم در حالت دیباگ اجرا شود. مانند کد زیر
static void Main(string[] args) { [Conditional("DEBUG")] static void DoAction() { // Do Action Here Console.WriteLine("Do Action..."); } DoAction(); }
اگر بر روی متدهای محلی C# 8.0 از Attribute استفاده کنیم، با خطای زیر روبرو میشویم:
ErrorCS8400Feature 'local function attributes' is not available in C# 8.0. Please use language version 9.0 or greater.