c#
c#의 init access 문법과 top level
by kcj3054
2022. 7. 24.
InitAcessor
public class Score
{
public readonly int category;
public int val;
public int Value
{
get
{
return this.val;
}
init
{
this.category = 1;
this.val = Value;
}
}
}
Program.cs
// See https://aka.ms/new-console-template for more information
using System.Threading.Channels;
using ConsoleApp3;
Console.WriteLine("Hello, World!");
Thread th1 = new Thread(new ThreadStart(Program11.Class1.Func1));
Thread th2 = new Thread(new ThreadStart(Program11.Class2.Func2));
//
// th1.Start();
// th2.Start();
// Console.WriteLine("스레드 종료!!");
var s = new Score()
{
val = 90
};
Console.WriteLine(s.val);
public class Program11
{
public class Class1
{
public static void Func1()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("스레드1호출!!");
}
}
}
public class Class2
{
public static void Func2()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("스레드호출2!!!");
}
}
}
}
- c#의 신문법에서 9.0에서 prgram,cs에서는 top level이 적용된다. 여기서 함수를 만들어서 사용하려면 함수 생성 부분은 밑으로 가야한다.
var s = new Score()
{
val = 90
};
- 위의 부분이 init 문법이다 개체를 만들자마자 바로 개체의 val값을 초기화 시켜버린다.. !!!