C# 값 타입의 new 할당

C# 2016. 6. 10. 18:05
1
2
int a;
Console.WriteLine(a); // 컴파일 안됨
cs


초기화하지 않은 인스턴스를 사용시 컴파일 에러를 발생시킨다.


1
2
int a = new int();
Console.WriteLine(a); // 컴파일 안됨
cs


실행 결과 : 0


값 형식의 변수를 new로 생성하면 해당 변수의 모든 값을 0으로 할당한다.

이는 struct에도 마찬가지.

Posted by RPG만들기XP
,
1
2
3
4
5
6
7
8
9
10
11
public interface IEnumerable
{
    IEnumerator GetEnumerator();
}
 
public interface IEnumerator
{
    object Current{ get; }
    bool MoveNext();
    void Reset();
}
cs


C++의 iterator라고 생각할 수 있다.


IEnumerable 인터페이스를 컨테이너 클래스에서 구현하고,

iterator 클래스에서 IEnumerator 인터페이스를 구현하여 foreach(object elem in container)문을 사용할 수 있다.

'C#' 카테고리의 다른 글

C# 구조체와 클래스 선택 기준  (0) 2016.06.10
C# 값 타입의 new 할당  (0) 2016.06.10
C# 인터페이스(interface)  (0) 2016.06.09
C# 델리게이트(delegate)  (0) 2016.06.08
C# 추상 클래스  (0) 2016.06.08
Posted by RPG만들기XP
,

C# 인터페이스(interface)

C# 2016. 6. 9. 21:06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class MyClass : Clickable
{
 
    public void Clicked() // override 키워드가 필요없다.
    {
 
    }
}
public class MyClass2 : Clickable
{
    void Clickable.Clicked() // 이렇게도 됨
    {
    }
}
public interface Clickable
{
    void Clicked();
}
cs


C#에서는 다중 상속을 지원하지 않는 대신 인터페이스를 쓸 수 있다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class MyClass2 : Clickable
{
    int a;
    void Clickable.Clicked() // 이렇게도 됨
    {
    }
    int Clickable.Member { get; set; }
    public int Member2
    {
        set { a = value; }
    }
}
public interface Clickable
{
 
    int Member { get; set; } // 프로퍼티도 된다.
    int Member2 { set; }
    void Clicked();
}
cs


프로퍼티도 된다.

'C#' 카테고리의 다른 글

C# 값 타입의 new 할당  (0) 2016.06.10
C# 인터페이스 - IEnumerable, IEnumerator 인터페이스  (0) 2016.06.09
C# 델리게이트(delegate)  (0) 2016.06.08
C# 추상 클래스  (0) 2016.06.08
C# 연산자 오버로딩  (0) 2016.06.08
Posted by RPG만들기XP
,