초기 커밋.
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,7 @@
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Hello, World!");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,17 @@
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
// 코멘트: 한 라인 코멘트는 두개의 슬래시 사용함
|
||||
int a = 1;
|
||||
|
||||
|
||||
int b = 1; // 코멘트: 하나의 문장 뒤에 코멘트를 달 수 있음
|
||||
|
||||
/*
|
||||
복수 라인에 대한 코멘트
|
||||
int c;
|
||||
int d;
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,48 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
//리터널
|
||||
/*
|
||||
123 // int 리터럴
|
||||
12.3 // double 리터럴
|
||||
"A" // string 리터럴
|
||||
'a' // char 리터럴
|
||||
true // bool 리터럴
|
||||
*/
|
||||
|
||||
// Bool
|
||||
bool b = true;
|
||||
|
||||
// Numeric
|
||||
short sh = -32768;
|
||||
int i = 2147483647;
|
||||
long l = 1234L; // L suffix
|
||||
float f = 123.45F; // F suffix
|
||||
double d1 = 123.45;
|
||||
double d2 = 123.45D; // D suffix
|
||||
decimal d = 123.45M; // M suffix
|
||||
|
||||
// Char/String
|
||||
char c = 'A';
|
||||
string s = "Hello";
|
||||
|
||||
// DateTime 2011-10-30 12:35
|
||||
DateTime dt = new DateTime(2011, 10, 30, 12, 35, 0);
|
||||
|
||||
//최대 최소
|
||||
int iMax = int.MaxValue;
|
||||
float fMin = float.MinValue;
|
||||
|
||||
//null
|
||||
string sn;
|
||||
sn = null;
|
||||
|
||||
// Nullable 타입
|
||||
int? inl = null;
|
||||
inl = 101;
|
||||
|
||||
bool? bnl = null;
|
||||
|
||||
//int? 를 int로 할당
|
||||
Nullable<int> j = null;
|
||||
j = 10;
|
||||
int k = j.Value;
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,43 @@
|
||||
class CSVar
|
||||
{
|
||||
//필드 (클래스 내에서 공통적으로 사용되는 전역 변수)
|
||||
int globalVar;
|
||||
const int MAX = 1024;
|
||||
|
||||
public void Method1()
|
||||
{
|
||||
// 로컬변수
|
||||
int localVar;
|
||||
|
||||
// 아래 할당이 없으면 에러 발생
|
||||
localVar = 100;
|
||||
|
||||
Console.WriteLine(globalVar);
|
||||
Console.WriteLine(localVar);
|
||||
}
|
||||
}
|
||||
|
||||
class CSVar2
|
||||
{
|
||||
// 상수
|
||||
const int MAX_VALUE = 1024;
|
||||
|
||||
// readonly 필드
|
||||
readonly int Max;
|
||||
public CSVar2()
|
||||
{
|
||||
Max = 1;
|
||||
}
|
||||
|
||||
//...
|
||||
}
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
// 테스트
|
||||
CSVar obj = new CSVar();
|
||||
obj.Method1();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,41 @@
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
// 1차 배열
|
||||
string[] players = new string[10];
|
||||
string[] Regions = { "서울", "경기", "부산" };
|
||||
|
||||
// 2차 배열 선언 및 초기화
|
||||
string[,] Depts = { { "김과장", "경리부" }, { "이과장", "총무부" } };
|
||||
|
||||
// 3차 배열 선언
|
||||
string[,,] Cubes;
|
||||
|
||||
//Jagged Array (가변 배열)
|
||||
//1차 배열 크기(3)는 명시해야
|
||||
int[][] A = new int[3][];
|
||||
|
||||
//각 1차 배열 요소당 서로 다른 크기의 배열 할당 가능
|
||||
A[0] = new int[2];
|
||||
A[1] = new int[3] { 1, 2, 3 };
|
||||
A[2] = new int[4] { 1, 2, 3, 4 };
|
||||
|
||||
A[0][0] = 1;
|
||||
A[0][1] = 2;
|
||||
|
||||
int[] scores = { 80, 78, 60, 90, 100 };
|
||||
int sum = CalculateSum(scores); // 배열 전달: 배열명 사용
|
||||
Console.WriteLine(sum);
|
||||
}
|
||||
|
||||
static int CalculateSum(int[] scoresArray) // 배열 받는 쪽
|
||||
{
|
||||
int sum = 0;
|
||||
for (int i = 0; i < scoresArray.Length; i++)
|
||||
{
|
||||
sum += scoresArray[i];
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,57 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
// 문자열(string) 변수
|
||||
using System.Text;
|
||||
|
||||
string s1 = "C#";
|
||||
string s2 = "Programming";
|
||||
|
||||
// 문자(char) 변수
|
||||
char c1 = 'A';
|
||||
char c2 = 'B';
|
||||
|
||||
// 문자열 결합
|
||||
string s3 = s1 + " " + s2;
|
||||
Console.WriteLine("String: {0}", s3);
|
||||
|
||||
// 부분문자열 발췌
|
||||
string s3substring = s3.Substring(1, 5);
|
||||
Console.WriteLine("Substring: {0}", s3substring);
|
||||
|
||||
string s = "C# Studies";
|
||||
|
||||
// 문자열을 배열인덱스로 한문자 엑세스
|
||||
for (int i = 0; i < s.Length; i++)
|
||||
{
|
||||
Console.WriteLine("{0}: {1}", i, s[i]);
|
||||
}
|
||||
|
||||
// 문자열을 문자배열로 변환
|
||||
string str = "Hello";
|
||||
char[] charArray = str.ToCharArray();
|
||||
|
||||
for (int i = 0; i < charArray.Length; i++)
|
||||
{
|
||||
Console.WriteLine(charArray[i]);
|
||||
}
|
||||
|
||||
// 문자배열을 문자열로 변환
|
||||
char[] charArray2 = { 'A', 'B', 'C', 'D' };
|
||||
s = new string(charArray2);
|
||||
|
||||
Console.WriteLine(s);
|
||||
|
||||
// 문자 연산
|
||||
char c3 = 'A';
|
||||
char c4 = (char)(c3 + 3);
|
||||
Console.WriteLine(c3); // D 출력
|
||||
|
||||
//StringBuilder 사용
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 1; i <= 26; i++)
|
||||
{
|
||||
sb.Append(i.ToString());
|
||||
sb.Append(System.Environment.NewLine);
|
||||
}
|
||||
string sbstr = sb.ToString();
|
||||
|
||||
Console.WriteLine(sbstr);
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,52 @@
|
||||
internal class Program
|
||||
{
|
||||
enum City
|
||||
{
|
||||
Seoul, // 0
|
||||
Daejun, // 1
|
||||
Busan = 5, // 5
|
||||
Jeju = 10 // 10
|
||||
}
|
||||
|
||||
[Flags]
|
||||
enum Border
|
||||
{
|
||||
None = 0,
|
||||
Top = 1,
|
||||
Right = 2,
|
||||
Bottom = 4,
|
||||
Left = 8
|
||||
}
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
City myCity;
|
||||
|
||||
// enum 타입에 값을 대입하는 방법
|
||||
myCity = City.Seoul;
|
||||
|
||||
// enum을 int로 변환(Casting)하는 방법.
|
||||
// (int)를 앞에 지정.
|
||||
int cityValue = (int)myCity;
|
||||
|
||||
if (myCity == City.Seoul) // enum 값을 비교하는 방법
|
||||
{
|
||||
Console.WriteLine("Welcome to Seoul");
|
||||
}
|
||||
|
||||
// OR 연산자로 다중 플래그 할당
|
||||
Border b = Border.Top | Border.Bottom;
|
||||
|
||||
// & 연산자로 플래그 체크
|
||||
if ((b & Border.Top) != 0)
|
||||
{
|
||||
//HasFlag()이용 플래그 체크
|
||||
if (b.HasFlag(Border.Bottom))
|
||||
{
|
||||
// "Top, Bottom" 출력
|
||||
Console.WriteLine(b.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,37 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
int x, y, z, b, c, d;
|
||||
x = y = z = b = c = d = 2;
|
||||
|
||||
//산술연산자
|
||||
int a = (x + y - z) * (b / c) % d;
|
||||
|
||||
//할당연산자
|
||||
int sum = 0;
|
||||
sum += a;
|
||||
|
||||
//증감연산자
|
||||
sum++;
|
||||
--sum;
|
||||
|
||||
//논리연산자
|
||||
bool isOk = true;
|
||||
if ((a > 1 && b < 0) || c == 1 || !isOk);
|
||||
|
||||
//비교연산자
|
||||
if (a <= b)
|
||||
{
|
||||
int rst = b - a;
|
||||
}
|
||||
|
||||
//비트연산자
|
||||
byte b1 = 7;
|
||||
int b4 = (b1 & 3) | 4 ^ 5;
|
||||
|
||||
//비트이동연산자
|
||||
int i = 2;
|
||||
i = i << 5;
|
||||
|
||||
//조건연산자
|
||||
int val = (a > b) ? a : b;
|
||||
string str = null;
|
||||
string s = str ?? "(널)";
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,70 @@
|
||||
using System.Diagnostics;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
static bool verbose = false;
|
||||
static bool continueOnError = false;
|
||||
static bool logging = false;
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
int a = -11;
|
||||
int val;
|
||||
if (a >= 0)
|
||||
{
|
||||
val = a;
|
||||
}
|
||||
else
|
||||
{
|
||||
val = -a;
|
||||
}
|
||||
|
||||
// 출력값 : 11
|
||||
Console.Write(val);
|
||||
|
||||
Console.WriteLine("과일 이름?");
|
||||
var category = Console.ReadLine();
|
||||
int price;
|
||||
switch (category)
|
||||
{
|
||||
case "사과":
|
||||
price = 1000;
|
||||
break;
|
||||
case "딸기":
|
||||
price = 1100;
|
||||
break;
|
||||
case "포도":
|
||||
price = 900;
|
||||
break;
|
||||
default:
|
||||
price = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
Console.WriteLine($"{category} 가격은 {price} 입니다.");
|
||||
|
||||
if (args.Length != 1)
|
||||
{
|
||||
Console.WriteLine("Usage: MyApp.exe option");
|
||||
return;
|
||||
}
|
||||
|
||||
string option = args[0];
|
||||
switch (option.ToLower())
|
||||
{
|
||||
case "/v":
|
||||
case "/verbose":
|
||||
verbose = true;
|
||||
break;
|
||||
case "/c":
|
||||
continueOnError = true;
|
||||
break;
|
||||
case "/l":
|
||||
logging = true;
|
||||
break;
|
||||
default:
|
||||
Console.WriteLine("Unknown argument: {0}", option);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,73 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
|
||||
// for 루프
|
||||
using System.Diagnostics;
|
||||
|
||||
for (int x = 0; x < 10; x++)
|
||||
{
|
||||
Console.WriteLine("Loop {0}", x);
|
||||
}
|
||||
|
||||
string[] array = new string[] { "AB", "CD", "EF" };
|
||||
|
||||
// foreach 루프
|
||||
foreach (string s in array)
|
||||
{
|
||||
Console.WriteLine(s);
|
||||
}
|
||||
|
||||
// 3차배열 선언
|
||||
string[,,] arr = new string[,,] {
|
||||
{ {"1", "2"}, {"11","22"} },
|
||||
{ {"3", "4"}, {"33", "44"} }
|
||||
};
|
||||
|
||||
//for 루프 : 3번 루프를 만들어 돌림
|
||||
for (int i = 0; i < arr.GetLength(0); i++)
|
||||
{
|
||||
for (int j = 0; j < arr.GetLength(1); j++)
|
||||
{
|
||||
for (int k = 0; k < arr.GetLength(2); k++)
|
||||
{
|
||||
Debug.WriteLine(arr[i, j, k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//foreach 루프 : 한번에 3차배열 모두 처리
|
||||
foreach (var s in arr)
|
||||
{
|
||||
Debug.WriteLine(s);
|
||||
}
|
||||
|
||||
int y = 1;
|
||||
|
||||
// while 루프
|
||||
while (y <= 10)
|
||||
{
|
||||
Console.WriteLine(y);
|
||||
y++;
|
||||
}
|
||||
|
||||
y = 0;
|
||||
// do ~ while 루프
|
||||
do
|
||||
{
|
||||
Console.WriteLine(y);
|
||||
y++;
|
||||
} while (y < 10);
|
||||
|
||||
//Enumerable
|
||||
List<char> keyList = new List<char>();
|
||||
ConsoleKeyInfo key;
|
||||
do
|
||||
{
|
||||
key = Console.ReadKey();
|
||||
keyList.Add(key.KeyChar);
|
||||
} while (key.Key != ConsoleKey.Q); // Q가 아니면 계속
|
||||
|
||||
Console.WriteLine();
|
||||
foreach (char ch in keyList) // 리스트 루프
|
||||
{
|
||||
Console.Write(ch);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,50 @@
|
||||
internal class Program
|
||||
{
|
||||
static IEnumerable<int> GetNumber()
|
||||
{
|
||||
yield return 10; // 첫번째 루프에서 리턴되는 값
|
||||
yield return 20; // 두번째 루프에서 리턴되는 값
|
||||
yield return 30; // 세번째 루프에서 리턴되는 값
|
||||
}
|
||||
|
||||
public class MyList
|
||||
{
|
||||
private int[] data = { 1, 2, 3, 4, 5 };
|
||||
|
||||
public IEnumerator<int> GetEnumerator()
|
||||
{
|
||||
int i = 0;
|
||||
while (i < data.Length)
|
||||
{
|
||||
yield return data[i];
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
//...
|
||||
}
|
||||
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
foreach (int num in GetNumber())
|
||||
{
|
||||
Console.WriteLine(num);
|
||||
}
|
||||
|
||||
// (1) foreach 사용하여 Iteration
|
||||
var list = new MyList();
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
Console.WriteLine(item);
|
||||
}
|
||||
|
||||
// (2) 수동 Iteration
|
||||
IEnumerator<int> it = list.GetEnumerator();
|
||||
it.MoveNext();
|
||||
Console.WriteLine(it.Current); // 1
|
||||
it.MoveNext();
|
||||
Console.WriteLine(it.Current); // 2
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,64 @@
|
||||
class MyException : Exception
|
||||
{
|
||||
public string MyMessage = string.Empty;
|
||||
public MyException(string message, Exception ex) :base(ex.Message)
|
||||
{
|
||||
MyMessage = message;
|
||||
}
|
||||
}
|
||||
|
||||
internal class Program
|
||||
{
|
||||
static void Step1()
|
||||
{
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
static void Step2()
|
||||
{
|
||||
throw new FileNotFoundException();
|
||||
}
|
||||
static void Step3()
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
static bool Log(Exception ex)
|
||||
{
|
||||
Console.WriteLine($"{DateTime.Now.ToString("yy/MM/dd HH:mm:ss")} - {ex.Message}");
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 실행 문장들
|
||||
Step1();
|
||||
Step2();
|
||||
Step3();
|
||||
}
|
||||
catch (IndexOutOfRangeException ex)
|
||||
{
|
||||
// 새로운 Exception 생성하여 throw
|
||||
throw new MyException("Invalid index", ex);
|
||||
}
|
||||
catch (FileNotFoundException ex)
|
||||
{
|
||||
bool success = Log(ex);
|
||||
if (!success)
|
||||
{
|
||||
// 기존 Exception을 throw
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log(ex);
|
||||
// 발생된 Exception을 그대로 호출자에 전달
|
||||
throw;
|
||||
}
|
||||
finally
|
||||
{
|
||||
//TODO 사용한 메모리 정리 코드
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,21 @@
|
||||
using MySystem.MySubSystem;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Class1 cls = new MySystem.MySubSystem.Class1();
|
||||
}
|
||||
}
|
||||
|
||||
namespace MySystem.MySubSystem
|
||||
{
|
||||
public class Class1
|
||||
{
|
||||
public int Calculate(int a, int b)
|
||||
{
|
||||
int abs_Sum = System.Math.Abs(a) + Math.Abs(b);
|
||||
return abs_Sum;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,45 @@
|
||||
internal class Program
|
||||
{
|
||||
// 구조체 정의
|
||||
struct MyPoint
|
||||
{
|
||||
public int X;
|
||||
public int Y;
|
||||
|
||||
public MyPoint(int x, int y)
|
||||
{
|
||||
this.X = x;
|
||||
this.Y = y;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("({0}, {1})", X, Y);
|
||||
}
|
||||
}
|
||||
|
||||
sealed class MyPointC
|
||||
{
|
||||
public int X;
|
||||
public int Y;
|
||||
|
||||
public MyPointC(int x, int y)
|
||||
{
|
||||
this.X = x;
|
||||
this.Y = y;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return string.Format("({0}, {1})", X, Y);
|
||||
}
|
||||
}
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
// 구조체 사용
|
||||
MyPoint pt = new MyPoint(10, 12);
|
||||
Console.WriteLine(pt.ToString());
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ExF.Class
|
||||
{
|
||||
public class MyCustomer
|
||||
{
|
||||
// 필드
|
||||
private string name;
|
||||
private int age;
|
||||
|
||||
// 이벤트
|
||||
public event EventHandler NameChanged;
|
||||
|
||||
// 생성자 (Constructor)
|
||||
public MyCustomer()
|
||||
{
|
||||
name = string.Empty;
|
||||
age = -1;
|
||||
}
|
||||
|
||||
// 속성
|
||||
public string Name
|
||||
{
|
||||
get { return this.name; }
|
||||
set
|
||||
{
|
||||
if (this.name != value)
|
||||
{
|
||||
this.name = value;
|
||||
if (NameChanged != null)
|
||||
{
|
||||
NameChanged(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public int Age
|
||||
{
|
||||
get { return this.age; }
|
||||
set { this.age = value; }
|
||||
}
|
||||
|
||||
// 메서드
|
||||
public string GetCustomerData()
|
||||
{
|
||||
string data = string.Format("Name: {0} (Age: {1})",
|
||||
this.Name, this.Age);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using ExF.Class;
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
MyCustomer customer1 = new MyCustomer();
|
||||
MyCustomer customer2 = new();
|
||||
var customer3 = new MyCustomer();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,43 @@
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
MyClass cls = new();
|
||||
cls.NullableTest();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class MyClass
|
||||
{
|
||||
double _Sum = 0;
|
||||
DateTime _Time;
|
||||
bool? _Selected;
|
||||
|
||||
public void CheckInput(int? i, double? d, DateTime? time, bool? selected)
|
||||
{
|
||||
if (i.HasValue && d.HasValue)
|
||||
this._Sum = (double)i.Value + (double)d.Value;
|
||||
|
||||
// time값이 있는 체크.
|
||||
if (!time.HasValue)
|
||||
throw new ArgumentException();
|
||||
else
|
||||
this._Time = time.Value;
|
||||
|
||||
// 만약 selected가 NULL이면 false를 할당
|
||||
this._Selected = selected ?? false;
|
||||
}
|
||||
public void NullableTest()
|
||||
{
|
||||
int? a = null;
|
||||
int? b = 0;
|
||||
int result = Nullable.Compare<int>(a, b);
|
||||
Console.WriteLine(result); //결과 -1
|
||||
|
||||
double? c = 0.01;
|
||||
double? d = 0.0100;
|
||||
bool result2 = Nullable.Equals<double>(c, d);
|
||||
Console.WriteLine(result2); //결과 true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,65 @@
|
||||
internal class Program
|
||||
{
|
||||
private void Calculate(int a)
|
||||
{
|
||||
a *= 2;
|
||||
}
|
||||
static double GetData(ref int a, ref double b)
|
||||
{ return ++a * ++b; }
|
||||
|
||||
// out 정의
|
||||
static bool GetData(int a, int b, out int c, out int d)
|
||||
{
|
||||
c = a + b;
|
||||
d = a - b;
|
||||
return true;
|
||||
}
|
||||
|
||||
int Calc(int a, int b, string calcType = "+")
|
||||
{
|
||||
switch (calcType)
|
||||
{
|
||||
case "+":
|
||||
return a + b;
|
||||
case "-":
|
||||
return a - b;
|
||||
case "*":
|
||||
return a * b;
|
||||
case "/":
|
||||
return a / b;
|
||||
default:
|
||||
throw new ArithmeticException();
|
||||
}
|
||||
}
|
||||
|
||||
double Calc(params double[] doubles)
|
||||
{
|
||||
return doubles.Sum();
|
||||
}
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Program p = new Program();
|
||||
|
||||
int val = 100;
|
||||
p.Calculate(val);
|
||||
// val는 그대로 100
|
||||
Console.WriteLine($"val = {val} ");
|
||||
|
||||
// ref 사용. 초기화 필요.
|
||||
int x = 1;
|
||||
double y = 1.0;
|
||||
double ret = GetData(ref x, ref y);
|
||||
Console.WriteLine($"x = {x}, y = {y} ");
|
||||
|
||||
// out 사용. 초기화 불필요.
|
||||
int c, d;
|
||||
bool bret = GetData(10, 20, out c, out d);
|
||||
Console.WriteLine($"c = {c}, d = {d} ");
|
||||
|
||||
p.Calc(1, 2);
|
||||
p.Calc(4, 3, "-");
|
||||
p.Calc(1.1, 2.2, 3.3, 4.4);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ExI.Event
|
||||
{
|
||||
class MyClass
|
||||
{
|
||||
public event EventHandler<EventArgs>? Complished;
|
||||
|
||||
public void Calc(int complexity)
|
||||
{
|
||||
Thread.Sleep(complexity);
|
||||
Complished?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// See https://aka.ms/new-console-template for more information
|
||||
using ExI.Event;
|
||||
|
||||
var mycls = new MyClass();
|
||||
mycls.Complished += Mycls_Complished;
|
||||
|
||||
void Mycls_Complished(object? sender, EventArgs e)
|
||||
{
|
||||
Console.WriteLine("작업끝");
|
||||
}
|
||||
|
||||
mycls.Calc(2000);
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,76 @@
|
||||
#define TEST_ENV
|
||||
#define STANDARD_EDITION
|
||||
#define ENTERPRISE_EDITION
|
||||
|
||||
#if (!ENTERPRISE_EDITION)
|
||||
#warning This class should be used in Enterprise Edition
|
||||
#elif (!STANDARD_EDITION)
|
||||
#error 최소 스탠다드 버젼은 되어야합니다.
|
||||
#else
|
||||
class EnterpriseClass
|
||||
{
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
bool verbose = false;
|
||||
// ...
|
||||
|
||||
#if (TEST_ENV)
|
||||
Console.WriteLine("Test Environment: Verbose option is set.");
|
||||
verbose = true;
|
||||
#else
|
||||
Console.WriteLine("Production");
|
||||
#endif
|
||||
|
||||
if (verbose)
|
||||
{
|
||||
//....
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class ClassA
|
||||
{
|
||||
#region Public Methods
|
||||
public void Run() { }
|
||||
public void Create() { }
|
||||
#endregion
|
||||
|
||||
#region Public Properties
|
||||
public int Id { get; set; }
|
||||
#endregion
|
||||
|
||||
#region Privates
|
||||
private void Execute() { }
|
||||
#endregion
|
||||
}
|
||||
|
||||
#pragma warning disable 3021
|
||||
|
||||
namespace App1
|
||||
{
|
||||
[System.CLSCompliant(false)]
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//...
|
||||
|
||||
#pragma warning disable
|
||||
if (false)
|
||||
{
|
||||
Console.WriteLine("TBD");
|
||||
}
|
||||
#pragma warning restore
|
||||
|
||||
//...
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,47 @@
|
||||
internal class Program
|
||||
{
|
||||
class MyClass
|
||||
{
|
||||
private const int MAX = 10;
|
||||
private string name;
|
||||
|
||||
// 내부의 정수 배열 데이타
|
||||
private int[] data = new int[MAX];
|
||||
|
||||
// 인덱서 정의. int 파라미터 사용
|
||||
public int this[int index]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (index < 0 || index >= MAX)
|
||||
{
|
||||
throw new IndexOutOfRangeException();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 정수배열로부터 값 리턴
|
||||
return data[index];
|
||||
}
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!(index < 0 || index >= MAX))
|
||||
{
|
||||
// 정수배열에 값 저장
|
||||
data[index] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
MyClass cls = new MyClass();
|
||||
|
||||
// 인덱서 set 사용
|
||||
cls[1] = 1024;
|
||||
|
||||
// 인덱서 get 사용
|
||||
int i = cls[1];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,24 @@
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
var mycls = new MyClass();
|
||||
mycls.Name = "철수";
|
||||
mycls.Run(100);
|
||||
//mycls._id = 100; //에러
|
||||
//mycls.Execute() //에러
|
||||
}
|
||||
|
||||
|
||||
internal class MyClass
|
||||
{
|
||||
private int _id = 0;
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public void Run(int id) { }
|
||||
|
||||
protected void Execute() { }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,113 @@
|
||||
// 베이스 클래스
|
||||
public class Animal
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public int Age { get; set; }
|
||||
}
|
||||
|
||||
// 파생클래스
|
||||
public class Dog : Animal
|
||||
{
|
||||
public void HowOld()
|
||||
{
|
||||
// 베이스 클래스의 Age 속성 사용
|
||||
Console.WriteLine("나이: {0}", this.Age);
|
||||
}
|
||||
}
|
||||
|
||||
public class Bird : Animal
|
||||
{
|
||||
public void Fly()
|
||||
{
|
||||
Console.WriteLine("{0}가 날다", this.Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class VirBase
|
||||
{
|
||||
public virtual void Say()
|
||||
{
|
||||
Console.WriteLine("Hello");
|
||||
}
|
||||
}
|
||||
|
||||
public class SpeakerA : VirBase
|
||||
{
|
||||
public override void Say()
|
||||
{
|
||||
Console.WriteLine("World");
|
||||
}
|
||||
}
|
||||
|
||||
public abstract class PureBase
|
||||
{
|
||||
// abstract C#키워드
|
||||
public abstract int GetFirst();
|
||||
public abstract int GetNext();
|
||||
}
|
||||
|
||||
public class DerivedA : PureBase
|
||||
{
|
||||
private int no = 1;
|
||||
|
||||
// override C#키워드
|
||||
public override int GetFirst()
|
||||
{
|
||||
return no;
|
||||
}
|
||||
|
||||
public override int GetNext()
|
||||
{
|
||||
return ++no;
|
||||
}
|
||||
}
|
||||
|
||||
public class MyBase
|
||||
{
|
||||
public string Name { get; set; }
|
||||
protected int Age { get; set; }
|
||||
}
|
||||
|
||||
public class MyDerived : MyBase
|
||||
{
|
||||
public void Run()
|
||||
{
|
||||
// 파생클래스이므로 Age 사용 가능
|
||||
Console.WriteLine("나이: {0}", this.Age);
|
||||
}
|
||||
}
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
var dog = new Dog();
|
||||
dog.Name = "멍멍이";
|
||||
dog.Age = 10;
|
||||
var bird = new Bird();
|
||||
bird.Name = "삐약이";
|
||||
|
||||
dog.HowOld();
|
||||
bird.Fly();
|
||||
|
||||
Animal[] animals = { dog, bird };
|
||||
foreach (var animal in animals)
|
||||
{
|
||||
Console.WriteLine($"{animal.Name}");
|
||||
}
|
||||
|
||||
}
|
||||
public void Test(object obj)
|
||||
{
|
||||
// as 연산자
|
||||
MyBase a = obj as MyBase;
|
||||
|
||||
// is 연산자
|
||||
bool ok = obj is MyBase; //true
|
||||
|
||||
// Explicit Casting
|
||||
MyBase b = (MyBase)obj;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,61 @@
|
||||
public class MyClass
|
||||
{
|
||||
private int val = 1;
|
||||
|
||||
// 인스턴스 메서드
|
||||
public int InstRun()
|
||||
{
|
||||
return val;
|
||||
}
|
||||
|
||||
// 정적(Static) 메서드
|
||||
public static int Run()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
public class Client
|
||||
{
|
||||
public void Test()
|
||||
{
|
||||
// 인스턴스 메서드 호출
|
||||
MyClass myClass = new MyClass();
|
||||
int i = myClass.InstRun();
|
||||
|
||||
// 정적 메서드 호출
|
||||
int j = MyClass.Run();
|
||||
}
|
||||
}
|
||||
|
||||
// static 클래스 정의
|
||||
public static class MyUtility
|
||||
{
|
||||
private static int ver;
|
||||
|
||||
// static 생성자
|
||||
static MyUtility()
|
||||
{
|
||||
ver = 1;
|
||||
}
|
||||
|
||||
public static string Convert(int i)
|
||||
{
|
||||
return i.ToString();
|
||||
}
|
||||
|
||||
public static int ConvertBack(string s)
|
||||
{
|
||||
return int.Parse(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
string str = MyUtility.Convert(123);
|
||||
int i = MyUtility.ConvertBack(str);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,58 @@
|
||||
class MyStack<T>
|
||||
{
|
||||
T[] _elements;
|
||||
int pos = 0;
|
||||
|
||||
public MyStack()
|
||||
{
|
||||
_elements = new T[100];
|
||||
}
|
||||
|
||||
public void Push(T element)
|
||||
{
|
||||
_elements[++pos] = element;
|
||||
}
|
||||
|
||||
public T Pop()
|
||||
{
|
||||
return _elements[pos--];
|
||||
}
|
||||
}
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
|
||||
// 두 개의 서로 다른 타입을 갖는 스택 객체를 생성
|
||||
MyStack<int> numberStack = new MyStack<int>();
|
||||
MyStack<string> nameStack = new MyStack<string>();
|
||||
}
|
||||
}
|
||||
|
||||
// T는 Value 타입
|
||||
class MyClassS<T> where T : struct { }
|
||||
|
||||
// T는 Reference 타입
|
||||
class MyClassC<T> where T : class { }
|
||||
|
||||
// T는 디폴트 생성자를 가져야 함
|
||||
class MyClassD<T> where T : new() { }
|
||||
|
||||
// T는 EventArgs의 파생클래스이어야 함
|
||||
class MyClassMyBase<T> where T : EventArgs { }
|
||||
|
||||
// T는 IComparable 인터페이스를 가져야 함
|
||||
class MyClass<T> where T : IComparable { }
|
||||
|
||||
// 좀 더 복잡한 제약들
|
||||
class EmployeeList<T> where T : EventArgs, IDisposable, IComparable<T>, new()
|
||||
{
|
||||
}
|
||||
|
||||
// 복수 타입 파라미터 제약
|
||||
class MyClass<T, U>
|
||||
where T : class
|
||||
where U : struct
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,35 @@
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
|
||||
public class MyConnection : Component, IDbConnection, IDisposable
|
||||
{
|
||||
// IDbConnection을 구현
|
||||
// IDisposable을 구현
|
||||
}
|
||||
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Hello, World!");
|
||||
}
|
||||
}
|
||||
|
||||
public interface IComparable
|
||||
{
|
||||
// 멤버 앞에 접근제한자 사용 안함
|
||||
int CompareTo(object obj);
|
||||
}
|
||||
|
||||
public class MyClass : IComparable
|
||||
{
|
||||
private int key;
|
||||
private int value;
|
||||
|
||||
// IComparable 의 CompareTo 메서드 구현
|
||||
public int CompareTo(object obj)
|
||||
{
|
||||
MyClass target = (MyClass)obj;
|
||||
return this.key.CompareTo(target.key);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,34 @@
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
new Program().Test();
|
||||
}
|
||||
|
||||
// 델리게이트 정의
|
||||
delegate int MyDelegate(string s);
|
||||
|
||||
void Test()
|
||||
{
|
||||
//델리게이트 객체 생성
|
||||
MyDelegate m = new MyDelegate(StringToInt);
|
||||
|
||||
//델리게이트 객체를 메서드로 전달
|
||||
Run(m);
|
||||
}
|
||||
|
||||
// 델리게이트 대상이 되는 어떤 메서드
|
||||
int StringToInt(string s)
|
||||
{
|
||||
return int.Parse(s);
|
||||
}
|
||||
|
||||
// 델리게이트를 전달 받는 메서드
|
||||
void Run(MyDelegate m)
|
||||
{
|
||||
// 델리게이트로부터 메서드 실행
|
||||
int i = m("123");
|
||||
|
||||
Console.WriteLine(i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.13.35806.99 d17.13
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex2.Comment", "Ex2.Comment\Ex2.Comment.csproj", "{4FC56CD5-D7C4-41D5-91B9-EC406225A715}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex1.HelloWorld", "Ex1.HelloWorld\Ex1.HelloWorld.csproj", "{39ABAB47-45AD-4E0C-866F-E12810D1CBFF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex3.DataType", "Ex3.DataType\Ex3.DataType.csproj", "{B0DCAEBE-EBCC-4929-8B61-93E5853BA9F6}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex4.VariableConstant", "Ex4.VariableConstant\Ex4.VariableConstant.csproj", "{AB320A4A-367C-4052-850B-9D79E53A0421}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex5.Array", "Ex5.Array\Ex5.Array.csproj", "{5CC1E4EB-4C16-4B63-A38E-65E7F13AC08C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex6.String", "Ex6.String\Ex6.String.csproj", "{6A2134F4-B4FD-4313-9DDB-EF9E426A96FF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex7.Enum", "Ex7.Enum\Ex7.Enum.csproj", "{21FE3B80-B9E9-4406-B304-BEBBEC22B47B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex8.Operators", "Ex8.Operators\Ex8.Operators.csproj", "{AB468895-F089-41AD-AB4F-4FB04045499E}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ex9.Condition", "Ex9.Condition\Ex9.Condition.csproj", "{76C94A31-D482-498B-AF5E-E239D306FC8A}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExA.Loop", "ExA.Loop\ExA.Loop.csproj", "{9F1FBAFD-B984-453C-B66B-28260E4CB711}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExB.Yield", "ExB.Yield\ExB.Yield.csproj", "{ACE6B8A9-D167-40F8-8362-5AC61999BEC3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExC.Exception", "ExC.Exception\ExC.Exception.csproj", "{8C0FDE46-2F20-4F00-9410-B2C40A045CAE}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExD.NameSpace", "ExD.NameSpace\ExD.NameSpace.csproj", "{DEE4C4CC-1C75-485C-9444-EA648AD8467F}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExE.Struct", "ExE.Struct\ExE.Struct.csproj", "{F2020660-FB06-4A6D-8D91-025E4275FA9C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExF.Class", "ExF.Class\ExF.Class.csproj", "{02FBBE64-492D-4273-8D49-B097071B38C0}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExG.Nullable", "ExG.Nullable\ExG.Nullable.csproj", "{CF200652-DD7F-4A69-96F6-DAD022778B6D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExH.Parameters", "ExH.Parameters\ExH.Parameters.csproj", "{1EA797AC-6CAB-444D-9A6E-271851CF07DE}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExI.Event", "ExI.Event\ExI.Event.csproj", "{1C0B9F76-E191-4AE0-9455-AAF59C67A2E5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExJ.Preprocessor", "ExJ.Preprocessor\ExJ.Preprocessor.csproj", "{BFC645DA-ACD5-4FD1-95D1-57F2416509BF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExK.Indexer", "ExK.Indexer\ExK.Indexer.csproj", "{EB61C562-A175-4A4B-A1A5-9432619B846D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExL.AccessModifier", "ExL.AccessModifier\ExL.AccessModifier.csproj", "{249879AD-142F-45AE-AEE9-2E7C4DC1683C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExM.Inheritance", "ExM.Inheritance\ExM.Inheritance.csproj", "{6CEE339D-335A-41FA-AC2E-2B0833D057FF}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExN.Static", "ExN.Static\ExN.Static.csproj", "{EAF589B1-F2CE-46CF-8309-E289FA0D52CB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExO.Generic", "ExO.Generic\ExO.Generic.csproj", "{080C7BB8-7CA9-4A4E-9492-D58F633652F3}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExP.Interface", "ExP.Interface\ExP.Interface.csproj", "{51D81BEE-BA6A-4D96-9228-51A06D49FC0C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExQ.Delegate1", "ExQ.Delegate1\ExQ.Delegate1.csproj", "{52E7A86E-720F-4111-AA1B-8C5FADE7E207}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{4FC56CD5-D7C4-41D5-91B9-EC406225A715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4FC56CD5-D7C4-41D5-91B9-EC406225A715}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4FC56CD5-D7C4-41D5-91B9-EC406225A715}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4FC56CD5-D7C4-41D5-91B9-EC406225A715}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{39ABAB47-45AD-4E0C-866F-E12810D1CBFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{39ABAB47-45AD-4E0C-866F-E12810D1CBFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{39ABAB47-45AD-4E0C-866F-E12810D1CBFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{39ABAB47-45AD-4E0C-866F-E12810D1CBFF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B0DCAEBE-EBCC-4929-8B61-93E5853BA9F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B0DCAEBE-EBCC-4929-8B61-93E5853BA9F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B0DCAEBE-EBCC-4929-8B61-93E5853BA9F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B0DCAEBE-EBCC-4929-8B61-93E5853BA9F6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AB320A4A-367C-4052-850B-9D79E53A0421}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AB320A4A-367C-4052-850B-9D79E53A0421}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AB320A4A-367C-4052-850B-9D79E53A0421}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AB320A4A-367C-4052-850B-9D79E53A0421}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5CC1E4EB-4C16-4B63-A38E-65E7F13AC08C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5CC1E4EB-4C16-4B63-A38E-65E7F13AC08C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5CC1E4EB-4C16-4B63-A38E-65E7F13AC08C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5CC1E4EB-4C16-4B63-A38E-65E7F13AC08C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6A2134F4-B4FD-4313-9DDB-EF9E426A96FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6A2134F4-B4FD-4313-9DDB-EF9E426A96FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6A2134F4-B4FD-4313-9DDB-EF9E426A96FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6A2134F4-B4FD-4313-9DDB-EF9E426A96FF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{21FE3B80-B9E9-4406-B304-BEBBEC22B47B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{21FE3B80-B9E9-4406-B304-BEBBEC22B47B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{21FE3B80-B9E9-4406-B304-BEBBEC22B47B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{21FE3B80-B9E9-4406-B304-BEBBEC22B47B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AB468895-F089-41AD-AB4F-4FB04045499E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AB468895-F089-41AD-AB4F-4FB04045499E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AB468895-F089-41AD-AB4F-4FB04045499E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AB468895-F089-41AD-AB4F-4FB04045499E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{76C94A31-D482-498B-AF5E-E239D306FC8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{76C94A31-D482-498B-AF5E-E239D306FC8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{76C94A31-D482-498B-AF5E-E239D306FC8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{76C94A31-D482-498B-AF5E-E239D306FC8A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{9F1FBAFD-B984-453C-B66B-28260E4CB711}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9F1FBAFD-B984-453C-B66B-28260E4CB711}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9F1FBAFD-B984-453C-B66B-28260E4CB711}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9F1FBAFD-B984-453C-B66B-28260E4CB711}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{ACE6B8A9-D167-40F8-8362-5AC61999BEC3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ACE6B8A9-D167-40F8-8362-5AC61999BEC3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ACE6B8A9-D167-40F8-8362-5AC61999BEC3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ACE6B8A9-D167-40F8-8362-5AC61999BEC3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8C0FDE46-2F20-4F00-9410-B2C40A045CAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8C0FDE46-2F20-4F00-9410-B2C40A045CAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8C0FDE46-2F20-4F00-9410-B2C40A045CAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8C0FDE46-2F20-4F00-9410-B2C40A045CAE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{DEE4C4CC-1C75-485C-9444-EA648AD8467F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{DEE4C4CC-1C75-485C-9444-EA648AD8467F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{DEE4C4CC-1C75-485C-9444-EA648AD8467F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{DEE4C4CC-1C75-485C-9444-EA648AD8467F}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F2020660-FB06-4A6D-8D91-025E4275FA9C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F2020660-FB06-4A6D-8D91-025E4275FA9C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F2020660-FB06-4A6D-8D91-025E4275FA9C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F2020660-FB06-4A6D-8D91-025E4275FA9C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{02FBBE64-492D-4273-8D49-B097071B38C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{02FBBE64-492D-4273-8D49-B097071B38C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{02FBBE64-492D-4273-8D49-B097071B38C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{02FBBE64-492D-4273-8D49-B097071B38C0}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CF200652-DD7F-4A69-96F6-DAD022778B6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CF200652-DD7F-4A69-96F6-DAD022778B6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CF200652-DD7F-4A69-96F6-DAD022778B6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CF200652-DD7F-4A69-96F6-DAD022778B6D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1EA797AC-6CAB-444D-9A6E-271851CF07DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1EA797AC-6CAB-444D-9A6E-271851CF07DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1EA797AC-6CAB-444D-9A6E-271851CF07DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1EA797AC-6CAB-444D-9A6E-271851CF07DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1C0B9F76-E191-4AE0-9455-AAF59C67A2E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1C0B9F76-E191-4AE0-9455-AAF59C67A2E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1C0B9F76-E191-4AE0-9455-AAF59C67A2E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1C0B9F76-E191-4AE0-9455-AAF59C67A2E5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BFC645DA-ACD5-4FD1-95D1-57F2416509BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BFC645DA-ACD5-4FD1-95D1-57F2416509BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BFC645DA-ACD5-4FD1-95D1-57F2416509BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BFC645DA-ACD5-4FD1-95D1-57F2416509BF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EB61C562-A175-4A4B-A1A5-9432619B846D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EB61C562-A175-4A4B-A1A5-9432619B846D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EB61C562-A175-4A4B-A1A5-9432619B846D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EB61C562-A175-4A4B-A1A5-9432619B846D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{249879AD-142F-45AE-AEE9-2E7C4DC1683C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{249879AD-142F-45AE-AEE9-2E7C4DC1683C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{249879AD-142F-45AE-AEE9-2E7C4DC1683C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{249879AD-142F-45AE-AEE9-2E7C4DC1683C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6CEE339D-335A-41FA-AC2E-2B0833D057FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{6CEE339D-335A-41FA-AC2E-2B0833D057FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6CEE339D-335A-41FA-AC2E-2B0833D057FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6CEE339D-335A-41FA-AC2E-2B0833D057FF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EAF589B1-F2CE-46CF-8309-E289FA0D52CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EAF589B1-F2CE-46CF-8309-E289FA0D52CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EAF589B1-F2CE-46CF-8309-E289FA0D52CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EAF589B1-F2CE-46CF-8309-E289FA0D52CB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{080C7BB8-7CA9-4A4E-9492-D58F633652F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{080C7BB8-7CA9-4A4E-9492-D58F633652F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{080C7BB8-7CA9-4A4E-9492-D58F633652F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{080C7BB8-7CA9-4A4E-9492-D58F633652F3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{51D81BEE-BA6A-4D96-9228-51A06D49FC0C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{51D81BEE-BA6A-4D96-9228-51A06D49FC0C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{51D81BEE-BA6A-4D96-9228-51A06D49FC0C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{51D81BEE-BA6A-4D96-9228-51A06D49FC0C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{52E7A86E-720F-4111-AA1B-8C5FADE7E207}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{52E7A86E-720F-4111-AA1B-8C5FADE7E207}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{52E7A86E-720F-4111-AA1B-8C5FADE7E207}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52E7A86E-720F-4111-AA1B-8C5FADE7E207}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {A6D0271E-F7E3-439E-A090-22C197162036}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Reference in New Issue
Block a user