نظرات اشتراک‌ها
همکاری مایکروسافت با تیم Mono در مورد portable class libraries
مدتی است بدنبال برنامه نویسی اندروید هستم و بین انتخاب زبان سی شارپ و جاوا مردد هستم . کدام گزینه‌ی بهتری برای کار هست استفاده از جاوا یا سی شارپ ؟ آیا ممکنه بلایی که سر سیلورلایت اومد سر برنامه نویسان اندروید (سی شارپ) هم بیاد ؟ اگر بخواهیم آینده نگری کنیم کار رو با کدوم پیش ببریم و ابزارها و امکانات کدوم بهتر هست ؟

اشتراک‌ها
یک MessageBox بهتر
شاید شما هم مثل من از MessageBox پیش فرض سی شارپ خسته شده باشید و بدنبال جایگزین بهتری برای آن باشید. من در جستجوهای خود به این مطلب برخوردم که یک MessageBox با تقریباً همان ویژگیهای MessagBox پیش فرض اما قدرتمند‌تر را پیاده سازی کرده است بطوریکه به شما امکان تعیین آیکون دلخواه برای MessageBox، تعیین قسمت‌های Main Instruction و Footer و گنجاندن لینک در این قسمت‌ها و ... را می‌دهد. البته این MessageBox به زبان ویژوال بیسیک دات نت نوشته شده، اما در قسمت نظرات مقاله لینک سورس C#.NET پروژه نیز قرار داده شده است.

موفق باشید!
یک MessageBox بهتر
نظرات مطالب
آموزش LINQ بخش دوم
یک نکته تکمیلی :Contextual Keyword
 کلمات کلیدی مربوط به LINQ را به تعبیر دقیق‌تر Contextual Keyword می‌گویند. به این خاطر که با کلمات کلیدی زبان C# که با ارائه سی شارپ 1 ارائه شدند کمی متفاوت هستند.این کلمات کلیدی اگر در مکان صحیح خود استفاده شوند رفتاری شبیه کلمات کلیدی دارند در غیر اینصورت کاربرد کلمات کلیدی را ندارند.کلمه کلیدی yeild اگر به همراه return  بیاید رفتار مورد انتظار ما را برآورده می‌کند در غیر اینصورت می‌تواند همچون نام متغیر در برنامه مورد استفاده قرار بگیرد.
var yield = 10;
yield return "1";
در اینجا می‌توانید لیست کاملی از Contextual Keyword‌ها را مشاهده کنید.
اشتراک‌ها
کلاینت سبک تلگرام به زبان سی شارپ

کتابخانه ای برای کار با  تلگرام به زبان سی شارپ و دات نت شش(Telegram + Net)

تفاوتش با نمونه‌های دیگر اینکه آخرین تغییرات تلگرام(لایه 150) رو شامل میشه و با آخرین نسخه دات نت هم توسعه داده شده است.

کلاینت سبک تلگرام به زبان سی شارپ
نظرات مطالب
آشنایی با Saltarelle کامپایلر قدرتمند #C به جاوااسکریپت
با تشکر از نوشتارتون ذکر دو نکته را لازم می‌دونم.
اول اینکه هدف از این مطلب الزام به استفاده یا عدم استفاده از این نوع کامپایلرها نیست و فقط برای آشنایی با این گونه ابزارها بوده که در حال حاضر در بسیاری از نرم افزارهای اینترپراز در حال استفاده اند.
و دوم اینکه تفاوت ساختاری و ماهیتی سی شارپ و جاوا اسکریپت اونقدر واضح هست که نباید از این دو انتظار یکسان داشت. و مهمترین عامل به وجود اومدن چنین کامپایلرهایی استفاده از سینتکس سی شارپ بوده و نه قدرت دات نت فریم ورک. بنا براین فکر می‌کنم لزومی به وجود مبدل هایی از زبان میانی وجود ندارد و همچنین واضح است کلاس هایی از قبیل Random و غیره که نه توانایی زبان سی شارپ بلکه امکانات درونی دات نت فریم ورک است برای همچین ابزاری بی معناست.
و فکر می‌کنم برای چنین کامپایلری لازم نیست جاوا اسکریپت همه امکانات سی شارپ را داشته باشد. و اینکه سی شارپ بتواند قسمت زیادی از امکانات جاوا اسکریپت را در اختیار برنامه ساز قرار دهد کافیست.
باز هم تشکر می‌کنم
اشتراک‌ها
زبان برنامه‌نویسی Nim
  • نیم یک زبان برنامه‌نویسی شئ‌گرا است
  • کامپایلر این زبان به طور خودکار کدهای زبان C را تولید می‌کند
  • سینتکس این زبان مشابه با زبان پایتون است
  • همانند زبان‌های Go و Rust، از Strong Types استفاده می‌کند
  • یک زبان برنامه‌نویسی دستوری و اصطلاحاً Statically Typed است
زبان برنامه‌نویسی Nim
مطالب
امکان تعریف ویژگی‌ها بر روی توابع محلی در C# 9.0

یکی از ویژگی‌های جدید اضافه شده به سی شارپ 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.