دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

Ascii Art

با استفاده از این نرم افزار شما می توانید تصاویر دلخواه خود را به کدهای Html  تبدیل کنید .

این نرم افزار می تواند برای کسانی که دارای سایت هستند جالب باشد. زیرا در صورتی که بخواهند از کپی کردن برخی تصاویر یا لوگوهای خو جلوگیری کنند این روش بسیار مناسب می باشد

تصویر کوچکی که در پیکچرباکس قرمز رنگ  پائین می بینید بوسیله همین نرم افزار ساخته شده است.

توجه : بهتر است تصاویری که برای این منظور استفاده می کنید عرض ( width ) و ارتفاع ( Height ) زیادی نداشته باشند تا براحتی و سرعت بیشتری نمایش داده شوند.

ضمنا می توانید به همین منظور تصاویر بیت مپ زیبایی را از اینجا دانلود کنید.



سطوح دسترسی access specifier

access specifier

پنج نوع سطح دسترسی در سی شارپ وجود دارد .

1 . public   - یک کلاس با سطح دسترسی پابلیک (عمومی)به این معنی است که این کلاس اجازه می دهد تا توابع و اشیاء بیرون از این کلاس بتوانند به متغیرها و توابعش دسترسی پیدا کنند.

2 . private  -  یک کلاس با سطح دسترسی پرایوت (خصوصی)به این معنی است که تمام متغیرها و توابع درون این کلاس از بیرون کلاس قابل دسترسی نیست و فقط توابع درون کلاس قادر به دسترسی به آنها می باشند.

3 . protected - توابع و متغییرهای داخل یک کلاس با سطح دسترسی پروتکتد(محافظت شده)   دقیقاً مانند private عمل می کنند بجز برای کلاس های مشتق شده از این کلاس که  این همان مفهوم ارث بری از کلاس پایه می باشد .یعنی یک کلاس مشتق شده از یک کلاس پدر می تواند به توابع و متغییرهایی که بصورت protected تعریف شده اند دسترسی داشته باشد.

4 . internal  - یک کلاس با سطح دسترسی اینترنال ( داخلی ) به این اشاره دارد که توابع و متغیرهای این کلاس فقط از درون همین کلاس قابل دسترسی هستند یعنی در فاصله بین دو علامت اکولاد ابتدا و انتهای این کلاس.

5 . protected internal -  کلاسی با این سطح دسترسی اجازه دارد تا توابع و متغیرهایش را از هر بخش برنامه بجز فرزندانش ( کلاس های مشتق شده از آن ) مخفی نگه دارد.

---------------------------------

تمام مواردی که در بالا توضیح داده شد مفهوم کپسوله کردن(  Encapsulation  ) را بیان می کنند.

Nested Loops

Nested Loops

به معنی استفاده از لوپ ها بصورت تو در تو می باشد . شما می توانید هر نوع لوپ را درون لوپ دیگر بکار ببرید
طرز نوشتن لوپ های تو در تو در چند نمونه پایین آمده .

for ( init; condition; increment ) {
   for ( init; condition; increment ) {
      statement(s);
   }
   statement(s);
}

==========================

while(condition) {
   while(condition) {
      statement(s);
   }
   statement(s);
}


=====================================================

do {
   statement(s);
   do {
      statement(s);
   }
   while( condition );
}
while( condition );

============================================

using System;
namespace Loops {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         int i, j;
         
for (i = 2; i < 100; i++) {
for (j = 2; j <= (i / j); j++)
if ((i % j) == 0) break; // if factor found, not prime
if (j > (i / j)) Console.WriteLine("{0} is prime", i);
         }
         Console.ReadLine();
      }
   }
} 

-------------------------خروجی برنامه بالا--------------------------------
2 is prime 3 is prime 5 is prime 7 is prime 11 is prime 13 is prime 17 is prime 19 is prime 23 is prime 29 is prime 31 is prime 37 is prime 41 is prime 43 is prime 47 is prime 53 is prime 59 is prime 61 is prime 67 is prime 71 is prime 73 is prime 79 is prime 83 is prime 89 is prime 97 is prime

delegate دلیگیت

delegate

همان طور  که می دانید یک متد می تواند چندین پارامتر با نوع های مختلف را یکجا دریافت نماید.مانند عدد صحیح ، اعشاری و یا رشته اما تا کنون به این فکر کرده اید که آیا می شود یک متد را بعنوان پارامتری به متد دیگر تحویل داد .

اگر قصد چنین کاری را دارید ، متدی را که می خواهید بعنوان پارامتر باشد بایستی بصورت  delegate  تعریف کنید .  

برنامه زیر نمونه ای از کاربرد دلیگیت می باشد .

using System;
namespace deligayt
{
    class Program
    {
        public delegate void Print(int value);
        static void Main(string[] args)
        {
            // Print delegate points to PrintNumber
            Print printDel = PrintNumber;
            printDel(100000);
            printDel(200);
            // Print delegate points to PrintMoney
            printDel = PrintMoney;
            printDel(10000);
            printDel(200);
            Console.ReadLine();
        }
        public static void PrintNumber(int num)
        {
            Console.WriteLine("Number: {0,-12:N0}", num);
        }
        public static void PrintMoney(int money)
        {
            Console.WriteLine("Money: {0:C}", money);
         }         }            }

یک نمونه برنامه دیگر از نحوه استفاده از دلیگیت :


using System;
delegate int NumberChanger(int n);
namespace DelegateAppl {
   class TestDelegate {
      static int num = 10;
            public static int AddNum(int p) {
         num += p;
         return num;
      }
      public static int MultNum(int q) {
         num *= q;
         return num;
      }
      public static int getNum() {
         return num;
      }
      static void Main(string[] args) {
         //create delegate instances
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);
         //calling the methods using the delegate objects
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();               }              }        }

خروجی برنامه بالا بصورت زیر می باشد . - - - - -


Value of Num: 35
Value of Num: 175