สิ่งนี้อยู่ในใจของฉันหลังจากฉันเรียนรู้จากคำถามนี้ :
where T : struct
พวกเราผู้พัฒนา C # ทุกคนรู้พื้นฐานของ C # ฉันหมายถึงการประกาศเงื่อนไขเงื่อนไขลูปตัวดำเนินการ ฯลฯ
พวกเราบางคนเข้าใจสิ่งต่าง ๆ เช่นGenerics , ประเภทนิรนาม , lambdas , LINQ , ...
แต่คุณสมบัติหรือลูกเล่นที่ซ่อนอยู่ของ C # ที่แม้แต่แฟน C #, ผู้ติดยา, ผู้เชี่ยวชาญแทบจะไม่รู้คืออะไร?
นี่คือคุณสมบัติที่เปิดเผยแล้ว:
คำสำคัญ
yield
โดยMichael Stumvar
โดยMichael Stumusing()
คำสั่งโดยkokosreadonly
โดยkokosas
โดยMike Stoneas
/is
โดยEd Swangrenas
/is
(ปรับปรุง) โดยRocketpantsdefault
โดยDeathofratsglobal::
โดยpzycomanusing()
บล็อกโดยAlexCusevolatile
โดยJakub Šturcextern alias
โดยJakub Šturc
คุณลักษณะ
DefaultValueAttribute
โดยMichael StumObsoleteAttribute
โดยDannySmurfDebuggerDisplayAttribute
โดยStuDebuggerBrowsable
และDebuggerStepThrough
โดยbdukesThreadStaticAttribute
โดยmarxidadFlagsAttribute
โดยMartin ClarkeConditionalAttribute
โดยAndrewBurns
วากยสัมพันธ์
??
(รวมตัวกันเป็นโมฆะ ) โอเปอเรเตอร์โดยkokos- การตีธงหมายเลขโดยNick Berardi
where T:new
โดยLars Mæhlum- ข้อมูลทั่วไปโดยนัยโดยKeith
- lambdas หนึ่งพารามิเตอร์โดยKeith
- คุณสมบัติอัตโนมัติโดยKeith
- นามแฝง Namespace โดยKeith
- ตัวอักษรของคำต่อท้ายสตริงด้วย @ โดยPatrick
enum
ค่าโดยlfoust- @variablenames โดยmarxidad
event
ผู้ประกอบการโดยmarxidad- จัดรูปแบบวงเล็บสตริงโดยPortman
- ตัวดัดแปลงการเข้าถึงการเข้าถึงคุณสมบัติโดยxanadont
- ผู้ประกอบการ
?:
ตามเงื่อนไข (ที่ประกอบไปด้วย) ( ) โดยJasonS checked
และunchecked
ผู้ประกอบการโดยBinoj Antonyimplicit and explicit
ผู้ประกอบการโดยFlory
คุณสมบัติทางภาษา
- ประเภทที่ทำให้เป็นโมฆะโดยแบรดบาร์เกอร์
- ประเภทที่ไม่ระบุตัวตนโดยKeith
__makeref __reftype __refvalue
โดยยูดาห์ Himango- วัตถุ initializers โดยlomaxx
- จัดรูปแบบสตริงโดยDavid ในดาโคตา
- วิธีการขยายโดยmarxidad
partial
วิธีการโดยJon Erickson- คำสั่งของผู้ประมวลผลล่วงหน้าโดยJohn Asbeck
DEBUG
คำสั่งประมวลผลล่วงหน้าโดยRobert Durgin- ผู้ประกอบการมากไปโดยSefBkn
- พิมพ์ inferrence โดยชาคริต
- ตัวดำเนินการบูลีนนำไปสู่อีกระดับโดยRob Gough
- ผ่านตัวแปรประเภทค่าเป็นส่วนต่อประสานที่ไม่มีมวยโดยRoman Boiko
- โปรแกรมกำหนดประเภทตัวแปรที่ประกาศโดยRoman Boiko
- ตัวสร้างแบบคงที่โดยChris
- การทำแผนที่ ORM แบบย่อที่ง่ายขึ้นโดยใช้ LINQ โดยroosteronacid
__arglist
โดยZac Bowling
คุณสมบัติของ Visual Studio
- เลือกบล็อคข้อความในโปรแกรมแก้ไขโดยHimadri
- ตัวอย่างโดยDannySmurf
กรอบ
TransactionScope
โดยKiwiBastardDependantTransaction
โดยKiwiBastardNullable<T>
โดยIainMHMutex
โดยDiagoSystem.IO.Path
โดยageektrappedWeakReference
โดยJuan Manuel
วิธีการและคุณสมบัติ
String.IsNullOrEmpty()
วิธีการโดยKiwiBastardList.ForEach()
วิธีการโดยKiwiBastardBeginInvoke()
,EndInvoke()
วิธีการโดยจะคณบดีNullable<T>.HasValue
และNullable<T>.Value
คุณสมบัติโดยRismoGetValueOrDefault
วิธีการโดยJohn Sheehan
เคล็ดลับ & เทคนิค
- วิธีการที่ดีสำหรับตัวจัดการเหตุการณ์โดยAndreas HR Nilsson
- การเปรียบเทียบตัวพิมพ์ใหญ่โดยJohn
- เข้าถึงประเภทที่ไม่ระบุตัวตนโดยไม่มีการสะท้อนกลับโดยdp
- วิธีที่รวดเร็วในการยกตัวอย่างคุณสมบัติการรวบรวมโดยWill
- ฟังก์ชั่นอินไลน์แบบไม่ระบุชื่อเหมือน JavaScript โดยroosteronacid
อื่น ๆ
- netmodules โดยkokos
- LINQBridgeโดยDuncan Smart
- ส่วนขยายแบบขนานโดยJoel Coehoorn