Junior
C#-də giriş modifikatorları hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
C# dilində aşağıdakı giriş modifikatorları mövcuddur:
- public: Giriş məhdudlaşdırılmayıb.
publicilə işarələnmiş üzvlər, onların daxil olduğu tip əlçatan olduğu hər yerdən əlçatan olur. - private: Giriş, daxil olduğu tip ilə məhdudlaşdırılıb.
privateilə işarələnmiş üzvlər, yalnız eyni sinif və ya struktur daxilindəki koddan əlçatan olur. - protected: Giriş, daxil olduğu tip və ya ondan törəyən tiplərlə məhdudlaşdırılıb.
protectedilə işarələnmiş üzvlər, öz sinfi və törəyən siniflər daxilində əlçatan olur. - internal: Giriş, cari yığmaya (.dll və ya .exe) məhdudlaşdırılıb.
internalilə işarələnmiş üzvlər, eyni yığma daxilində hər yerdən əlçatan olur. - protected internal: Giriş, cari yığma və ya digər yığmalardakı daxil olan tiplərlə məhdudlaşdırılıb. Bu,
protectedvəinternal-in birləşməsidir. - private protected: Giriş, daxil olduğu tip və ya ondan törəyən tiplərlə, yalnız eyni yığmada məhdudlaşdırılıb. Bu,
privatevəprotected-in birləşməsidir.
// Giriş modifikatorlarının istifadəsinə nümunə
public class MyClass
{
public int PublicField; // Hər yerdən əlçatan
private int PrivateField; // Yalnız MyClass daxilində əlçatan
protected int ProtectedField; // MyClass və törəyən siniflərdə əlçatan
internal int InternalField; // Cari yığma daxilində əlçatan
protected internal int ProtectedInternalField; // Cari yığma və ya törəyən siniflərdə əlçatan
private protected int PrivateProtectedField; // MyClass və ya eyni yığmadakı törəyən siniflərdə əlçatan
void MyMethod()
{
PrivateField = 10; // OK
}
}
public class DerivedClass : MyClass
{
void DerivedMethod()
{
ProtectedField = 20; // OK
// PrivateField = 30; // Xəta - şəxsi sahə irsiyyətdə əlçatan deyil
ProtectedInternalField = 40; // OK
PrivateProtectedField = 50; // OK
}
}
public class AnotherClassInSameAssembly
{
void AnotherMethod()
{
MyClass mc = new MyClass();
mc.PublicField = 1; // OK
mc.InternalField = 2; // OK
mc.ProtectedInternalField = 3; // OK
// mc.PrivateField = 4; // Xəta
// mc.ProtectedField = 5; // Xəta
// mc.PrivateProtectedField = 6; // Xəta
}
}