Sinf class kalit so`zi yordamida yaratiladi. Quyida sinfning umumiy shakli, faqat o'zgaruvchilar nusxasi va metodlarni o'z ichiga olgan holda keltirilgan. class sinf_nomi { // nusxalarning e`lon qilinishi. ruxsat_turi tip uzgaruvchi1; ruxsat_turi tip uzgaruvchi2; //... ruxsat_turi tip uzgaruvchiN; // metodlarning e`lon qilinishi. ruxsat_turi qaytariluvchi_natijaning_tipi metod1(parametrlar) { // metod tanasi } ruxsat_turi qaytariluvchi_natijaning_tipi metod2(parametrlar) { // metod tanasi } //... ruxsat_turi qaytariluvchi_natijaning_tipi metodN(parametrlar) { // metod tanasi } } Unutmang, har bir e'lon qilingan o'zgaruvchi va metod oldida ruxsat turiko`rsatiladi. Ruxsat turi, masalan, publicbu sinf a'zosiga kirish tartibini belgilaydi. 2-bobda aytib o'tilganidek, sinf a'zolari sinf doirasida yopiq (private), yoki ochiq (public)va boshaqa hollarda bo'lishi mumkin. Ruxsat spesifikatori foydalanish ruxsati tipinianiqlaydi. Ruxsat turini yozish majburiy emas, agar u mavjud bo`lmasa e'lon qilingan a'zos sinf ichida yopiq hisoblanadi. Sinfning yopiq ruxsat turili a'zolariga faqat shu sinfining boshqa a'zolari tomonidan foydalanish mumkin. Ushbu bobda keltirilgan dasturlardagi Main()metodidan tashqari barcha a'zolar ochiq (public)deb aniqlangan. Bu shuni anglatadiki, ulardan kodning barcha qismlarida — hatto sinfdan tashqarida ham foydalanish mumkin. C# sintaksisida tegishli qoida yo'qligiga qaramasdan, to'g'ri ishlab chiqilgan sinf faqat bitta mantiqiy mohiyatni aniqlashi kerak. Masalan, F.I.O. va telefon raqamlar saqlanadigan sinf odatda fond bozori, o'rtacha yog'ingarchilik darajasi, quyosh botishi davrlari yoki ro'yxatdagi familiyalar bilan bog'liq bo'lmagan boshqa ma'lumotlarni o'z ichiga olmaydi. Bu hollatda, to'g'ri ishlab chiqilgan sinfda mantiqiy bog'liq ma'lumotlar guruhlarga ajratilgan bo'lishi kerak. Agar mantiqiy bog'liq bo'lmagan ma'lumotlar bir sinfga joylashtirilsa, kodning tuzilishi tezda buziladi.