57 lines
1.2 KiB
C#
57 lines
1.2 KiB
C#
|
using System;
|
|||
|
using System.Reflection;
|
|||
|
|
|||
|
/*
|
|||
|
* модификаторы доступа public и private(используются для реализации инкапсуляции), для членов класса
|
|||
|
*/
|
|||
|
class Point
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// *по умолчанию private
|
|||
|
/// </summary>
|
|||
|
int z = 3;
|
|||
|
|
|||
|
public int x = 1;
|
|||
|
|
|||
|
private int y = 5;
|
|||
|
|
|||
|
private void PrintX()
|
|||
|
{
|
|||
|
Console.WriteLine($"X: {x}");
|
|||
|
}
|
|||
|
|
|||
|
public void PrintY()
|
|||
|
{
|
|||
|
Console.WriteLine($"Y: {y}");
|
|||
|
}
|
|||
|
|
|||
|
public void PrintPoint()
|
|||
|
{
|
|||
|
PrintX();
|
|||
|
PrintY();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
class Program
|
|||
|
{
|
|||
|
static void Main()
|
|||
|
{
|
|||
|
Point point = new Point();
|
|||
|
|
|||
|
point.PrintY();
|
|||
|
point.x = 2;
|
|||
|
point.PrintPoint();
|
|||
|
|
|||
|
// проверим то, что по умолчанию стоит private у поля используя рефлексию
|
|||
|
var typeInfo = typeof(Point).
|
|||
|
GetFields(BindingFlags.Instance
|
|||
|
| BindingFlags.NonPublic
|
|||
|
| BindingFlags.Public);
|
|||
|
|
|||
|
foreach (var item in typeInfo)
|
|||
|
{
|
|||
|
Console.WriteLine($"{item.Name}\t isPrivate: {item.IsPrivate}\t isPublic: {item.IsPublic}");
|
|||
|
}
|
|||
|
Console.ReadKey();
|
|||
|
}
|
|||
|
}
|