Movatterモバイル変換


[0]ホーム

URL:


မာတိကာသို့ ခုန်သွားရန်
ဝီကီပီးဒီးယား
ရှာဖွေရန်

C sharp (programming language)

ဝီကီပီးဒီးယား မှ
မြန်မာဘာသာဖြင့် သင့်လျော်သော အမည်မရှိသေးသောကြောင့် ဤဆောင်းပါးခေါင်းစဉ်ကို အခြားဘာသာစကား / စာဖြင့် ရေးသားထားခြင်း ဖြစ်သည်။
C#
Paradigmstructured,imperative,object-oriented
ပေါ်ပေါက်ခဲ့2001
ဒီဇိုင်းဆွဲသူMicrosoft Corporation
နောက်ဆုံးထုတ်3/ 19 November 2007
အမျိုးအစားစနစ်static,strong,both safe and unsafe,nominative
ပင်မ အသုံးချမှုများ.NET Framework,Mono,DotGNU
လွှမ်းမိုးခံObject Pascal,C++,Modula-3,Java,Eiffel
လွှမ်းမိုးခဲ့Nemerle,D,Java[],Windows PowerShell

C# (C sharp ဟု အသံထွက်ရန်) သည်Microsoft မှ ပြုလုပ်သော.NET ကို ဦးတည်သည့်ECMA (ECMA-334) andISO (ISO/IEC 23270) စံမှီobject-orientedprogramming language ဖြစ်သည်။Delphi တီထွင်သူAnders Hejlsberg ဦးဆောင်သော C# language သည်C++ ၏ object-orientedsyntax ကို အခြေခံပြီး ရှင်းလင်းလွယ်ကူရေးအတွက် အခြားprogramming language များ (အထူးသဖြင့်Delphi နှင့်Java) ကိုလည်း တုယူထားသည်။

တည်ဆောက်ပုံ ရည်ရွယ်ချက်

[ပြင်ဆင်ရန်]

ECMA စံတွင် C# ၏ တည်ဆောက်ပုံ ရည်ရွယ်ချက် ကို အောက်ပါအတိုင်း ပြသည်။

  • C# သည် ရှင်းလင်းသော၊ ခေတ်မှီသော၊ ယေဘူယျသုံး၊object-orientedprogramming language ဖြစ်သည်။
  • software ခိုင်မြဲမှု (robustness)၊ တာရှည်ခံခြင်း (durability) နှင့်ပရိုဂရမ်မာ ထုတ်လုပ်မှု မြင့်တင်စေရေးအတွက်strong type checkingarraybounds checking၊ မဖြစ်သေးသောကိန်းရှင် များ သိခြင်း၊source code portability၊ အလိုလျောက်garbage collection ပြုလုပ်ခြင်းတို့ ပါရှိရန်လိုသည်။
  • language တွင်distributed environment တွင်သုံးနိုင်သောsoftware components ထုတ်လုပ်နိုင်ရန်။
  • C နှင့်C++ သုံးသော ပရိုဂရမ်မာများ ပြောင်းလည်းသုံးစွဲနိုင်မှု အရေးကြီးသော အချက်ဖြစ်သည်။
  • internationalization ရနိုင်မှုသည် အရေးကြီးသည်။
  • C# သည် hosted နှင့် embedded system များတွင် အသုံးပြုနိုင်ရန် အရေးကြီးသည်။
  • C# သည်memory နှင့်processing power သုံးစွဲမှုကို လျှော့ချရန် ရည်ရွယ်သော် လည်းC သို့မဟုတ်assembly language တို့နှင့် ယှဉ်ရန် မလိုပေ။

သမိုင်း

[ပြင်ဆင်ရန်]

.NET စလုပ်စဉ်တွင်class library များကို Simple Managed C (SMC) ခေါ် language/compiler သုံး၍ရေးသားခဲ့သည်။ ၁၉၉၁တွင်Anders Hejlsberg သည် Cool ခေါ်programming language ကို တည်တွင်ခဲ့သည်။ ၂၀၀၀ တွင်Professional Developers Conference (PDC) ၌ ထို programming language ကို C# ဟု အမည်ပေးခဲ့သည်။ ထိုclass library များနှင့်ASP.NET များကိုC# သို့ ပို့ခဲ့သည်။

C# ဒီဇိုင်နာ ဖြစ်သောAnders Hejlsberg သည်Microsoft တွင် ထိပ်တန်း architect ဖြစ်ပြီးVisual J++,Borland Delphi နှင့်Turbo Pascal တို့၏ ဒီဇိုင်နာ တွင်လည်း ပါဝင်ခဲ့သည်။ သူ၏ အင်တာဗျူးနှင့် စာတမ်းများတွင်C++,Java,Delphi, နှင့်Smalltalk တို့၏ အားနည်းချက်များကို ဆွေးနွေးထားပြီးCommon Language Runtime (CLR) အခြေခံ ဖြစ်ပေါ်ပုံကို တင်ပြထားသည်။ ထိုမှတစ်ဆင့် C# ဒီဇိုင်းလုပ်ခဲ့ခြင်းဖြစ်သည်။ အခြားသူများကမူ C# တွင် ထိုprogramming language အပြင် အခြား programming language များကိုလည်း တုယူထားကြောင်း ငြင်းဆိုချက်များရှိသည်။

အသွင်လက္ခဏာများ

[ပြင်ဆင်ရန်]

ဒီဇိုင်းအားဖြင့် C# သည်Common Language Infrastructure (CLI) ၏ အတွင်းသဘော သဘာဝကို ဖော်ပြသောprogramming language ဖြစ်သည်။ C# ၏ အတွင်းtype များမှာ CLI framework ၏ အသီးသီးvalue-type များကို တည်ဆောက်ထားသည်။ သို့သော် C# language ဖော်ပြချက်တွင် compiler ၏ code generation လိုအပ်ချက်တွင် C# compiler သည် CLI နှင့် ကိုက်ညီရမည် ကိုလည်းကောင်း ၊Common Intermediate Language (CIL) ကို ထုတ်လုပ်ရမည်ကိုလည်းကောင်း ဖော်ပြမထားပေ။ သီအိုရီအားဖြင့် C# သည်C++ နှင့်Fortran တို့ကဲ့သို့machine code များ ထုတ်လုပ်နိုင်သော်လည်း လက်တွေ့တွင်မူ CIL ကိုသာ ရည်ရွယ်သည်။

C# သည်C နှင့်C++ တို့နှင့် ခြားနားသလောက်Java နှင့် တူသည်။ ၎င်းတို့မှာ -

  • globalကိန်းရှင် သို့မဟုတ်ဖန်ရှင် ဟူ၍မရှိပေ။ အားလုံးသောmethod နှင့်member များကိုclass ထဲတွင် ကြေညာရမည်။ သို့သော်public class များ၏static method/variable များ အဖြစ်နှင့်မူglobalဖန်ရှင်/ကိန်းရှင် အစားရနိုင်သည်။
  • C နှင့် C++ တို့နှင့် မတူပဲ local variable များကို enclosing blog အတွင်း shadow variable အဖြစ် လုပ်၍မရပေ။ Variable shadowing ကို C++ ရေးထုံးများတွင် ရောထွေးစေတတ်ကြောင်း ဖော်ပြသည်။
  • C# သည် တိကျသောboolean typebool ကို အသုံးပြုသည်။while နှင်if တို့ကဲ့သို့ ရွေးချယ်ချက်လိုသော အကြောင်းများတွင် boolean type လိုအပ်သည်။ C++ တို့တွင် boolean type အစား ကိန်းဂဏန်းတို့ကိုလည်း အသုံးပြုနိုင်သည်။ ဥပမာif(a) တွင်a သည် bool အဖြစ်ပြောင်းရန်သာလိုသောကြောင့်a သည် int သို့မဟုတ်pointer လည်း ဖြစ်နိုင်ပေသည်။ C# သည် int ဆိုသည်မှာ မှန်သည် မှားသည် ဟု အဓိပ္ပာယ်မရပေ။ ထို့ကြောင့် = အစား == သုံးသောif (a = b) ဆိုသော တွေ့နေကြ အမှားများ ကင်းလေသည်။
  • C# တွင်unsafe ဟုပြထားသော block အတွင်းမှလွဲ၍memory addresspointer များကို သုံးမရပေ။ unsafe ကုတ်ပါသောပရိုဂရမ် များသည်လည်း run ရန် အထူး အခွင့်လိုသည်။ unsafe pointer များသည် value-type, array, string သို့မဟုတ်stack တွင် ထားသောမက်မိုရီ ပို point လုပ်ထားနိုင်သည်။ unsafe အဖြစ် လုပ်မထားသော C# ကုတ်သည်System.IntPtr သုံး၍ pointer များကို သုံးနိုင်သော်လည်း ၎င်းတို့ကို dereference ကား လုပ်၍မရပေ။
  • Managed memory များကိုfree လုပ်၍မရပေ။ အလိုလျရောက်garbage collected ဖြစ်မည်။ Garbage collection ကြောင့်memory leaks ဖြစ်နိုင်သည်။ C# သည်using ကိုသုံး၍ finalization တွင်သေချာရန် ကုတ်ထည့်နိုင်သည်။
  • C# တွင်interface များစွာကိုimplement လုပ်နိုင်သော လည်းmultiple inheritance ကား မရပေ။ ၎င်းအချက်မှာ C# ကို ဒီဇိုင်လုပ်စဉ်ကပင် ဆုံးဖြတ်ခဲ့သောdependency hell ကို ကာကွယ်ရန်ဖြစ်ပြီး CLI အဘောတယားတွင် ရှင်းလင်းစေသည်။
  • C# သည်C++ ထက်typesafe ဖြစ်စေသည်။ မူလ ပါဝင်သော type conversion များတွင် အန္တရာယ် မရှိသော အပြောင်းများသာ ခွင့်ပြုသည်။ ဥပမာ integer တို့တွင် ပို၍ ကြီးမားသော type သို့ပြောင်းခြင်းမျိုး၊derived type မှbase type သို့ ပြောင်းခြင်းမျိုးတို့ ဖြစ်သည်။ ၎င်းတို့ကိုcompile-timeJIT အတွင်း နှင် တစ်ခါတစ်ရံruntime တွင် အတည်ဖြစ် (enforce) စေသည်။ boolean နှင် integer သော်လည်းကောင်း enumeration member နှင် integer သော်လည်းကောင်း မူလ အပြောင်း (implicit conversion) မရှိချေ။
  • Enumeration member များကို ၎င်းတို့၏namespace တွင် သီးသန့် ထားရှိသည်။
  • Accessor များဖြစ်သည့်Property များသည် C++ member field access များကဲ့သို့object အတွင်းပိုင်းကို ပြောင်းလဲစေနိုင်သည်။ C++ တွင် member တစ်ခုကို public အဖြစ်ကျေးညာခြင်းဖြင် ထို member ကို ရေးဖတ်ခွင့် ပေးနိုင်ပြီး ပို၍ အသေးစိတ် ထိန်းချူပ်ရန် အတွက်မူaccessor method များကိုသုံးလေသည်။ C# တွင်Property သည်ပင် member access ကို ထိန်းချူပ်နိုင်ပြီး စစ်ဆေးနိုင်သည်။
  • ရှာဖွေနိုင်သောreflection အားလုံးရှိသည်။
  • ယခု C# တွင်reserved words ၇၇ လုံး ရှိသည်။

Common Type system (CTS)

[ပြင်ဆင်ရန်]

C# တွင်unified type system ရှိသည်။ ၎င်းကိုCommon Type System (CTS) ဟုခေါ်သည်။

unified type system ဆိုသောကြောင့်type များအားလုံးinteger စသည် အခြေခံ type များအပါအဝင်System.Objecclasssubclass များဖြစ်သည်။ ထို့ကြောင့် မည်သည်မဆိုToString() method ရှိသည်။ သို့သော် စွမ်းရည်ကောင်းစေဖို့အတွက် ၎င်းprimitive types များကို object များကဲ့သို့ heap တွင် မထားပဲ stack တွင် ထားသည်။

Datatype အမျိုးအစားများ

[ပြင်ဆင်ရန်]

CTS တွင် datatypes ကို အောက်ပါအတိုင်း ကဏ္ဍ နှစ်ခု ကွဲသည် -

  • Value Type
  • Reference Type

value type များကို ၎င်း၏ တန်ဖိုးကိုသာ stack ၏မက်မိုရီ တွင် သိုလှောင်ထားပြီး reference type များသည် ၎င်းတန်ဖိုးထားရှိပါ မက်မိုရီ နေရာကိုသာ သိမ်းထားသည်။ Value type တွင် integers (short, long), floating-point numbers (float, double), decimal (a base 10 number), structures, enumerations, booleans and characters တို့ပါဝင်ပြီး Reference Type တွင် objects, strings, classes, interfaces and delegates တို့ ပါဝင်သည်။

User-defined datatypes

[ပြင်ဆင်ရန်]

C# သည်struct သုံး၍ user-definedvalue types များ လုပ်နိုင်သည်။Programmer အတွက်မူ ၎င်းသည် class အပေါ့စားများ အဖြစ်သုံးနိုင်သည်။ သာမန် class များနှင့်မတူပဲ standard primitives များကဲ့သို့ ၎င်းတို့ကို heap မှာ မထားပဲstack မှာ ထားသည်။ ၎င်းသည်object ၏ အစိတ်ပိုင်း သို့မဟုတ်array တွင်လည်းကောင်း အသုံးပြုနိုင်ပြီး သာမန် class object များကဲ့သို့memory indirection မလိုအပ်ပေ။ struct သည် များစွာသော အားနည်းချက်များရှိသည်။ struct တွင် null တန်ဖိုး မရှိသောကြောင့် array တွင်initialize မလုပ်ပဲ သုံးနိုင်သည်။ ၎င်းတန်ဖိုးများကို သုံးည ဖြင့်ဖြေဩားမည်ဖြစ်သည် (၎င်းတန်ဖိုးများကို ပြောင်း၍လည်း ရသည်)။ပရိုဂရမ်မာ အနေဖြင့်argument တစ်ခုနှင့် အထက် ပါ struct constructor များ ပြုလုပ်နိုင်သည်။ အကြောင်းမှာ struct သည်virtual method table မရှိခြင်းကြောင့်ဖြစ်ပြီး ၎င်းကြောင့်ပင်inheritance မရနိုင်ပေ။ သို့သော်interface ကိုတော့ implement လုပ်နိုင်သည်။

Boxing and unboxing

[ပြင်ဆင်ရန်]

Boxing ဆိုသည်မှာ value type တစ်ခု၏ value ကို ၎င်း၏ reference type အဖြစ်သို့ ပြောင်းခြင်းဖြစ်သည်။

Unboxing ဆိုသည်မှာ (အရင် box လုပ်ထားသော) reference type တစ်ခု၏ value ကို ၎င်း၏ value type အဖြစ်သို့ ပြောင်းခြင်းဖြစ်သည်။ ဥပမာ -

intfoo=42;// Value type.objectbar=foo;// foo is boxed to bar.intfoo2=(int)bar;// Unboxed back to value type.

Features of C# 2.0

[ပြင်ဆင်ရန်]

ကိုးကား

[ပြင်ဆင်ရန်]
  1. InJava 5.0, several features (foreach,autoboxing,varargs,attributes andenums) were introduced, after proving themselves useful in the C# language (with only minor differences in name and implementation).
"https://my.wikipedia.org/w/index.php?title=C_sharp_(programming_language)&oldid=786450" မှ ရယူရန်
ကဏ္ဍ:
ဝှက်ထားသော ကဏ္ဍ:

[8]ページ先頭

©2009-2026 Movatter.jp