تبليغاتX
جادوي سي شارپ
برای تعریف یک متغیر کافیست بدینصورت عمل نمایید: اول نام نوع متغیر مورد نظرتون رو تایپ كنید و بعد نامی را برای متغیر انتخاب نموده و در آخر می تونید اون رو مقداردهی اولیه نیر بكنید.
استفاده از چند علامت مساوی در مقداردهی اولیه متغیر:
همانند C شما در C# نیز قادر به استفاده از چند علامت مساوی برای مقداردهی به متغیرها هستید. به مثال زیر دقت کنید:

i = j = k = 0;

خیلی ساده است، این دستور در زمان کامپایل برای CPU به دستوری مانند دستور زیر تبدیل می شود:

i = 0; j = 0; k = 0;

اپراتورهای محاسباتی:
جمع +
تفریق -
ضرب *
تقسم /
باقیمانده تقسیم صحیح %
اپراتورهای منطقی:
عمل ترکیب AND روی بیتها &
عمل ترکیب OR روی بیتها |
عمل ترکیب یای انحصاری روی بیتها ^
متمم یک عدد باینری ~
حرکت بیتها به سمت راست >>n
حرکت بیتها به سمت <
همانند ++C، C و جاوا شما در #C اجازه استفاده از عملگرهای کاهش و افزایش را داريد. همچنین شما می توانید از دستورات انتساب خلاصه شده نیز استفاده کنید:

// Increment and Decrement Operators i = 5;
j = 10;
x = i++; //x = 5, then i = 6
y = --j; //y = 9 and j = 9
z = ++i; //z = 7 and i = 7
// Combining Arithmetic and Assignment Statements
x = x + 3; //can also be written as:
x += 3; //add 3 to x; store result in x
//also with the other basic operations:
temp *= 1.80; //mult temp by 1.80
z -= 7; //subtract 7 from z
y /= 1.3; //divide y by 1.3


در سي شارپ براي تصميم گيري از دستور if استفاده مي شود. شما شرط خود را حتما بايد داخل پرانتز قرار دهيد. اگر روال اجرايي شرط شما بيش از يك دستور باشد بايد از { } استفاده شود. در غير اينصورت مي توانيد پس از دستور if دستور مورد نظر خود را قرار بديد. اگر مي خواهيد در صورت عدم برقراري شرط شما دستور يا دستورات خاص ديگري اجرا شود بايد از else استفاده نماييد. در اين حالت اگر شرط برقرار باشد، مجموعه اي از دستورات و اگر هم شرط برقرار نباشد مجموعه ديگري از دستورات مي تواند اجرا شود.

if ( y > 0 )
   z = x / y;
else
   z = 0;
Console.writeLine(“z = “ + z);

عملگرهاي مقايسه اي:
همانند تمامي زبانهاي برنامه نويسي سي شارپ نيز داراي عملگرهاي مقايسه اي است. اما در نوع نمايش عملگر تفاوت وجود دارد. در سي شارپ از دو مساوي براي مقايسه يكسان بودن استفاده مي شود. اگر شما به تركيب شرطها در يك دستور if نياز داشته باشيد مي تواند از سه عمگر "و"، "يا" و نقيض استفاده كنيد. البته اين سه عملگر مختص دستور if نيستند.
بزرگتر >
كوچكتر <
مساوي ==
مخالف !=
بزرگتر مساوي >=
كوچكتر مساوي <=
عملگرهاي منطقي:
عملگر AND منطقي : &&
عملگر OR   منطقي : ||
عملگر NOT منطقي : ~

if ( (0 < x) && ( x <= 24) )
   Console.writeLine(“Time is up”);

با استفاده از دستور switch شما مي تونيد مقادير مختلف امكانپذير رو براي يك متغير آزمايش كنيد و سپس دستور(ات) مناسب رو اجرا نماييد. متغير شما براي مقايسه بايد يك متغير عددي يا رشته اي باشد كه داخل پرانتز قرار گرفته است:

switch ( j )
{
 case 12:
  System.out.println(“Noon”);
  break;
 case 13:
  System.out.println(“1 PM”);
  break;
 default:
  System.out.println(“some other time...”);
}

با استفاده از دستور break انتهاي هر بخش case مشخص ميشه. براي تست متغير با چند مقدار مي تونيد دستورات case رو نوشته و در آخرين دستور، از break استفاده كنيد.
توضيحات كد در سي شارپ:
در سي شارپ دو روش براي نوشتن توضيحات وجود دارد. روش تك خطي و روش محدوده اي

//C# single-line comment
/* also can go on
for any number of lines*/

+ نوشته شده در  سه شنبه بیست و هشتم آذر 1385ساعت 8:30  توسط کنستانتین  | 
سلام.
میخواستم توضیح مختصری در مورد آرایه ها ، نحوه تعریف و استفاده از اونا رو تو این پست بذارم. احتمال زیاد این مطلب ادامه دار خواهد بود!!.

آرایه ، با مشخص کردن نوع عنصر ( Element )، ابعاد ( Dimension ) و حد بالا و پایین آن (Upper & Lower  ) ، تعریف میشود. این مشخصات در هر گونه تعریفی که از آرایه ارائه شود صدق میکنند. آرایه ها تنها میتوانند عناصری را در خود نگه داری کنند که از یک نوع تعریف شده باشند.
مقادیر در آرایه از نوع شیئ ( Object ) هستند. اشیاء آرایه یک مجموعه از آدرس هایی هستند که به مکان ذخیرهء مقادیر عناصر اشاره میکنند.
انواع آرایه از کلاس System.Array مشتق شده ( Inherit ). این کلاس بدون توجه به عناصر یا بعد آرایه ها ، نمایانگر آنهاست . عملیاتی که بر روی آرایه ها تعریف شده شامل موارد زیر است :
- معین کردن و تخصیص حافظه به آرایه براساس اندازه و حد پایین تعریف شده.
- شاخص گذاری ( Index ) بر آرایه برای خواندن و نوشتن مقادیر .
- محاسبه آدرس یک عنصر از یک آرایه .( Managed Pointer )
- امکان  بازیابی بعد، محدوده های بالا و پایین و تعداد مقادیر ذخیره شده در آرایه.

آرایه ها در #C ، از نوع شیئ ( Object ) هستند و مانند ++C  و  C  ، تنها محدوده آدرسهای حافظه ای نیستند. به نمونه ای از تعریف و استفاده از آرایه ها توجه کنید:

                                                                                        ; { int[] numbers = { 1, 2, 3, 4, 5  
                                                                             ; int lengthOfNumbers = numbers.Length

یا

                                                                                                        class TestArraysClass
                                                                                                                                     }
   () static void Main  
    }     
       : Declare and initialize an array //          
      [ int[ ,] theArray = new int[5, 10            
         ; (System.Console.WriteLine("The array has {0} dimensions.", theArray.Rank            
 {       
{

آرایه یک ساختار داده ای است که شامل تعدادی متغیر از یک نوع است و همانگونه که دیدید با TYPE تعریف میشود :                                                                                         ; type[] arrayName

یک آرایه دارای مشخصات زیر است :
- میتواند یکی از این سه نوع باشد :یک بعدی ، چند بعدی و دندانه ای ( Jagged ).
- مقدار اولیهء آرایه های عددی به صفر و مقدار اولیهء آرایه های مرجعی ( Refrence ) به NULL  منسوب میشوند.
- یک آرایهء دندانه ای ( Jagged ) آرایه ای از آرایه هاست و در نتیجه عناصر آن از نوع مرجعی ( Refrence ) میباشند پس مقدار اولیه آنها NULL  است.
- شاخص آرایه ها از صفر شروع میشود پس عناصر یک آرایهء n بعدی از صفر آغاز میشود تا n-1.
- عناصر آرایه از هر نوعی میتوانند باشند حتی خود آرایه ( Jagged ).
- آرایه ها از نوع مرجع هستند ( Refrence Type ) که از نوع پایه و اصلی و انتزاعی Array  مشتق شده اند و میتوان از دستور foreach برای دستیابی به عناصر آرایه استفاده کرد.

یک مثال از سه نوع تعریف آرایه :

class TestArraysClass
}
     () static void Main      
    }       
        Declare a single-dimensional array //            
      ; [int[] array1 = new int[5            

          Declare and set array element values //            
     ; {  int[] array2 = new int[] { 1, 3, 5, 7, 9             

 Alternative syntax //            
      ; { int[] array3 = { 1, 2, 3, 4, 5, 6             

 Declare a two dimensional array //             
      ; [ int[,] multiDimensionalArray1 = new int[2, 3              

  Declare and set array element values //              
       ; {{ int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6              

 Declare a jagged array //              
       ; [][int[][] jaggedArray = new int[6              

 Set the values of the first array in the jagged array structure //              
      ; { jaggedArray[0] = new int[4] { 1, 2, 3, 4             
{        
{

امیدوارم مفید بوده باشه. این توضیح مختصری بود از آرایه ها و تعریف اونها در #C .
در فرصتهای بعدی ، در مورد آرایه ها توضیح بیشتری میدم.
موفق باشید.

+ نوشته شده در  دوشنبه بیست و هفتم آذر 1385ساعت 21:20  توسط آتاناز  | 

این یکی از امکانات بسیار جالب VS 2005 است. کمتر برنامه ای سراغ داریم که نیاز به ذخیره اطلاعات مورد نیازش برای اجرای مجدد نباشه. در حقیقت به نظرم حتی برنامه های ساده ای که می نویسیم هم باید همچین امکانی داشته باشن. دقیقا منظورم Setting برنامه است. راههای مختلفی هم برای این کار وجود داره که بستگی به نوع برنامه و پارامترهای دیگه ای داره که حتما خودتون بهتر می دونید. مثلا یکی از راههای ساده ای که توی برنامه های داس استفاده می کردن، استفاده از یک فایل binary با ساختار مشخص بود. در ویندوز اولین راهی که پیشنهاد شد استفاده از فایلهای ini بود و بعد از اون هم که رجیستری علم شد! و برای ذخیره اطلاعات برنامه می تونستید از اون استفاده کنید. وقتی که دات نت بساطش رو پهن کرد سر و کله فایلهای XML پیدا شد که جون می داد برای ذخیره Setting ازش استفاده کنید. مایکروسافت توی نسخه 2003 (.NET Framework 1.1) امکانی به نام App.Config را به دات نت اضافه کرد که یه فایل XML با ساختار استاندارد برای ذخیره Setting برنامتون توی دات نت بود. این کار خوب مایکروسافت با امکاناتی که توی دات نت 2 (VS 2005) اضافه کرده تکمیل شده. این امکاناتو توی این پست بررسی می کنیم.

 

در VS 2005 وقتی که یه پروژه جدید از نوع Widows می سازید یه فولدر بطور پیش فرض توی پنجره Solution Explorer نمایش داده میشه به نام Properties. اگه این فولدرو باز کنید زیرمجموعه های اون عباتند از AssemblyInfo.cs و Resources.resx و Settings.settings که فعلا با دو تای اولی کاری نداریم و می خوایم بریم سراغ Settings.Settings.

 

اگه روی اون دبل کلیک کنید یه Editor باز میشه. این Editor فقط یه جدوله که مشخصات Setting مورد نظرتون رو توی اون وارد می کنید. به عنوان مثال فیلدهای زیرو توی اون وارد کنید:

 

Name: ForeColor

Type: System.Drawing.Color

Scope: User (می تونید Apllication هم انتخاب کنید. در ادامه بحث به تفاوت بین اینا اشاره می کنم)

Value: Maroon (خوبیش اینه که وقتی شما در قسمت Type، نوع داده مورد نظرتونو انتخاب می کنید قسمت Value متناسب با اون تغییر می کنه مثلا در این مثال به محض انتخاب نوع System.Drawing.Color قسمت Value به نوعی تغییر می کنه که شما می تونید رنگ مورد نظرتونو انتخاب کنید.

 

هر تغییری که شما توی این Editor بدید معادل اون توی فایل Settings.Designer.cs کد مربوطه تولید میشه و همینطور توی فایل App.Config هم تغییرات لازم اعمال میشه.

حالا به فرم Form1.cs که بطور پیش فرض به پروژه اضافه شده برید و یه Label روی اون بذارید و متن Label رو مطابق نیازتون تغییر بدید. حالا توی رویداد Form1_Load کد زیر رو بنویسید:

 

label1.ForeColor=Properties.Settings.Default.ForeColor;

 

Properties: Namespace

Settings: کلاس که در پروژه به همین نام ساخته شده

Default: یک Property از کلاس Settings

ForeColor: همان آیتمی که ما به عنوان تنظیمات به بخش Settings اضافه کردیم حالا از طریق این Property قابل استفادست.

 

حالا اگه شما Scope را روی Application تنظیم کرده باشید هیچ فرقی نمی کنه که برنامه شما توی چه User استفاده بشه ولی اگه به User ست شده باشه قضیه فرق می کنه یعنی شما می تونید کاری کنید که تنظیماتتون برای هر User بطور مجزا ذخیره بشه و هر User که برنامه شما رو اجرا کرد با تنظیمات مورد نظر خودش اجرا بشه. فقط برای این کار باید قبل از خروج از برنامه تنظیمات جدید رو برای کاربر ذخیره کنید. این کار هم به این شکل قابل انجامه:

 

Properties.Settings.Default.Save();

 

حالا تصور کنید که یه فرم Setting دارید که کاربر توی این فرم تنظیمات مورد نظرش رو انجام میده و ذخیره می کنه بنابراین به ازای هر کاربر تنظیمات ذخیره میشه. ساختن فرم Setting و نوشتن کدهای اونو به عهده خودتون میذارم.

یکی از فواید بزرگ استفاده از این روش اینه که شما لازم نیست مقادیر ذخیره شده رو به چیزی که می خواید Cast کنید چون این کار توی کلاس Settings بطور خودکار و با توجه به نوع داده تعیین شده در Type انجام میشه.

 

+ نوشته شده در  شنبه هجدهم آذر 1385ساعت 19:7  توسط ققنوس  | 
سلام

این اولین پست من هست و از دوستان و استادان عزیزم که اجازه دادن کنارشون باشم و حاضر شدن کمکم کنن تشکر میکنم.

براساس سوال یکی از دوستان مبنی بر چگونگی تعریف متغیری که در تمام فرمها قابل استفاده باشد، میخواهم در مورد کلاسها و اعضای static توضیح مختصری بدم:

یک کلاس از نوع static که بصورت نمونه زیر تعریف میشود ، خواص زیر را داراست:

                                                                                           public static class CompanyInfo

                                                                                                                                     }

                                                                             ;  public static string CompanyName

                                                                           ; public static string CompanyAddress

                                                                                                                                    {

امکان گرفتن و ایجاد نمونه (Instance) از این نوع کلاس وجود ندارد.

اعضای آن تنها میتوانند از نوع static باشند.

این کلاسها sealed هستند و در نتیجه امکان وراثت و inheritance از آنها و برای آنها وجود ندارد .

نمیتوانند constructor  داشته باشند ، مگر یک static constructor برای تعیین و انتصاب مقادیر اولیه .

برای ساماندهی متدهایی که با object های خاصی کار نمیکنند (مثلا متدهای کلاس Math در Sysytem namespace) میتوانید یک کلاس از این نوع ایجاد کنید با متدها و متغیرهایی از همین نوع و بدون الزام در ساختن و گرفتن object از آن کلاس ، از متدها و متغیرهای موجود در آن بطور مستقیم و با بکار بردن نام کلاس ، استفاده کنید . به مثال زیر توجه کنید :

                                                                                                       public class Automobile
                                                                                                                                     }
                                                                         ; public static int NumberOfWheels = 4
                                                                                     public static int SizeOfGasTank
                                                                                                                               }
                                                                                                                         get
                                                                                                                      }                 

                                                                                                    ; return 15
                                                                                                                      {
                                                                                                                               {
                                                                                          {} ()public static void Drive
                                                                 ; public static event EventType RunOutOfGas

                                                                                                                                     {

و برای دسترسی به اعضا و متدها :

                                                                                                          ;()Automobile.Drive
                                                                                 ;int i = Automobile.NumberOfWheels

شما در یک کلاس غیر static هم میتوانید متد ،property , field یا event هایی از این نوع تعریف کنید و بدون تعریف یک instance از آن کلاس به اعضای static آن دسترسی داشته باشد . اگرچه حتی اگر instance ای هم از کلاس بسازید ، توسط آن نمیتوانید به این اعضا دسترسی پیدا کنید.

یک مثال دیگر :

                                                                                                           public class MyBaseC
                                                                                                                                      }
                                                                                                  public struct MyStruct
                                                                                                                          }
                                                                                 ; public static int x = 100
                                                                                                                          {
                                                                                                                                     {

                                                                                                          MyBaseC.MyStruct.x

امیدوارم مفید بوده باشه و دوست عزیزم "ستاره" هم جواب سوالشون رو گرفته باشند . این توضیح مختصری بود در مورد تعریف و استفاده از static .

+ نوشته شده در  جمعه دهم آذر 1385ساعت 19:40  توسط آتاناز  |