Синф таркибидаги маълумотлар ўзгарувчан ёки ўзгармас бўлиши мумкин. Синфда тавсифланган унинг майдонлари деб аталади. Синф элементларини тавсифлашда элементларнинг турли характеристикалрини белгиловчи атрибут ва спецификаторларини ҳам кўрсатиш мумкин. :
[атрибутлар] [спецификаторлар] [const] тип ном[=бошланғич қиймат]
Майдонларнинг мумкин бўлган спецификатор ваконстанталари 17.2-жадвалда баён этилган. Константалар учун фақат 1-6 спецификаторлардан фойдаланиш мумкин.
Жадвал 17.2. Майдон номланишлари ва синф вазифаси
№
Номи
Вазифаси
1
new
Синфнинг мерос олган элементини яширувчи майдоннинг янги тавсифи
2
public
Элемент билан ишлашга рухсат чегараланмаган
3
protected
Фақт жорий ва ҳосила синфлардан ишлашга рухсат бериш
4
internal
Фақат жорий йиғимдан рухсат
5
protected internal
Фақат жорий йиғим ва ҳосила синфлардан рухсат
6
private
Фақат жорий синфдан рухсат
7
abstract
Синфнинг барча экземплярлари учун битта майдон
8
sealed
Майдондан фақат ўқиш мумкин
9
static field
Майдон бошқа жараён ёки система томонидан ўзгартирилиши мумкин
Синф элементлари тўғридан – тўғри ёпиқ ( private ) хисобланади. Синфнинг барча усуллари унинг ёпиқ майдонлари билан ишлаш учун рухсатга эга.
Диққат Static спецификатори ёрдамида аниқланган майдон ва константалар синфнинг барча элементлари учун ягона экземплярда мавжуд бўлади. шу сабабли, уларга экземпляр номи билан эмас, балки синф номи билан мурожаат қилинади. Агар синф фақат статик элементлардан иборат бўлса, синф экземплярини яратиш талаб қилинмайди. Синф майдонига рухсат олиш (нуқта белгиси) амали ёрдамида бажарилади. Нуқтанинг ўнг томонида майдон номи, чап томонда эса оддий майдонлар учун экземпляр номи ёки статик майдонлар учун синф номи ёзилади. 17.1- жадвалда оддий Demo синфс ва унинг майдонларига мурожаат қилишнинг иккита усули келтирилган.
using System; namespace ConsoleApplication1 { class Demo { public int a = 1; // маълумот майдони public const double c = 1.66; // константа public static string s = "Demo"; // синфнинг статик майдони double y; // ёпиқ маълумот майдони }
class Class1 { static void Main() { Demo x = new Demo(); // Demo синфи экземплярини яратиш Console.WriteLine( x.a ); // x.a – синф майдонига мурожаат Console.WriteLine( Demo.c );// Demo.c – константага мурожаат Console.WriteLine( Demo.s ); //статик майдонга мурожаат } } } 17.1-майдон. Майдон ва константалардан иборат бўлган Demo синфи
Readonly спецификаторига эга бўлган майдонлар фақат ўқиш учун мўлжалланган. Бундай майдоннинг қийматини ёки уларни тавсифлаш жараёнида ёки конструкторда кўрсатиш мумкин.