つ⋅⌄⋅)づ⌁⌁도움⌁⌁⋆
2020.07.27_C#복습 본문
< 가변 매개변수 : params >
: 입력받을 인자의 타입에 해당하는 배열을 선언한 다음 params 예약어를 붙이면 된다
: 4, 5. 6... 개의 인자를 받게 하려면 params 예약어를 사용해 가변 인자를 지정해주면 가능!
static void Main(string[] args)
{
Console.WriteLine(Add(1, 2, 3, 4, 5));
Console.WriteLine(Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
}
static int Add(params int[] values)
{
int result = 0;
for (int i = 0; i < values.Length; i++)
{
result += values[i];
}
return result;
}
static void Main(string[] args)
{
PrintAll(1.05, "Result", 3);
}
private static void PrintAll(params object[] values)
{
foreach (object value in values)
{
Console.WriteLine(value);
}
}
< Win32 API 호출 : extern >
: MessageBeep함수 사용
: Win32 API와 C#코드를 연결하는 역할 : DllImport 특성을 적용해야 한 이용할 수 있다
: 닷넨 CLR은 DLLImport 특성으로 전달된 DLL 파일명에 exturn 예약어가 지정된 메서드와 시그니처가 동일한
Win 32 API를 연결한다
** exturn구문을 작성하려면 세 가지 정보가 필요하다
- 비관리 코드를 제공하는 DLL이름
- 비관리 코드의 함수 이름
- 비관리 코드의 함수 형식(signature)
class Program
{
[DllImport("user32.dll")]
static extern int MessageBeep(uint uType);
static int TestMethod(uint type)
{
return 0;
}
static void Main(string[] args)
{
MessageBeep(0);
}
}
< 안전하지 않은 컨텍스트 : unsafe >
static void Main(string[] args)
{
int iNum = 100;
//안전하지않다는 것을 인지하고 있다고 공지
unsafe
{
Console.WriteLine("{0}:X", (int)&iNum);
}
}