종종 자신의 일상 프로그래밍이 작은 사람을 사용하지만 얼마 전에 친구가, 새로운 키워드가 여러 용도를 가진 C 번호에 대해 질문,하지만 지금은 마음에 인터넷에서 정보를 요약합니다 정말, 이전에주의를 지불하지 않습니다 결국 여러 용도로 사용 연구중인 동료.
(1) 새로운 오퍼레이터 생성자 객체를 생성하고 호출하는 데 사용된다.
상속 회원 (2) 새로운 수정은 기본 클래스 멤버를 숨 깁니다.
구속 타입 파라미터 (3) 새로운 구속 조건은 일반적인 유형 선언에서 변수로서 사용될 수있다.
새로운 오퍼레이터
1 객체 생성자를 생성하는데 사용된다가 호출
예 : Class_Test Class_Test MyClass에 = 새 ();
(2)는 디폴트 값 유형 생성자 전화를 사용하는
예 : 민트의 INT 새로운 지능 (=),
민트 0으로 초기화의 그것은 int 형의 기본값입니다. 효과는 문에 상당 : INT의 민트 = 0;
3. 새로운 연산자 과부하되지.
new 연산자는 메모리 할당에 실패하는 경우 4., 그것은에서 OutOfMemoryException에서 발생합니다.
새로운 수정은
명시 적으로 기본 클래스에서 상속 된 멤버를 숨기기 위해 새로운 수식을 사용합니다. 상속 된 멤버를 숨기려면 파생 클래스에서 같은 이름의 멤버, 그리고 새로운 수정에 수정을 선언.
다음과 같은 범주를 고려 :
1 public class MyClass
2
3 {
4
5 public int x;
6
7 public void Invoke() {}
8
9 }
10
회원 파생 클래스 선언에 이름을 호출하는 것은 즉 기본 클래스에서 호출 방법을 숨 깁니다
1 public class MyDerivedC : MyClass
2 {
3
4 new public void Invoke() {}
5
6 }
필드 X는 유사한 이름으로 숨겨져되지 않기 때문에, 그래서 필드에 영향을 미치지 않습니다.
다음 양식 중 하나에 의해 이름 상속을 숨기기 :
1. 클래스 또는 구조 상수, 지정된 속성 유형을 소개하거나 이름이 같은 모든 기본 클래스 멤버를 숨 깁니다.
2. 클래스 또는 같은 이름을 가진 방법 숨겨진 속성 구조의 기본 클래스 및 유형 필드의 도입. 동일한 서명을 가진 기본 클래스 방법을 숨긴다.
3. 클래스 또는 구조 인덱서의 도입은 같은 이름을 가진 모든 기본 클래스 인덱서를 숨 깁니다.
같은 멤버 4. 신규를 사용하고 재정은 잘못된 것입니다.
참고 : 상속 된 멤버 선언을 숨기지 않습니다 경고를 생성 할 새 수식을 사용합니다.
예
이 예에서, 하위 클래스 MyClass에 동일한 이름을 가진 기본 클래스를 숨긴다. 이 예는 숨겨진 액세스 반원의 완전한 이름을 사용하는 방법을뿐만 아니라 설명뿐만 아니라 제거 새로운 수식을 사용하는 방법에 대한 경고 메시지를 보여줍니다.
1 using System;
2 public class MyBaseC
3 {
4 public class MyClass
5 {
6 public int x = 200;
7 public int y;
8 }
9 }
10 public class MyDerivedC : MyBaseC
11 {
12 new public class MyClass // nested type hiding the base type members
13 {
14 public int x = 100;
15 public int y;
16 public int z;
17 }
18 public static void Main()
19 {
20 // Creating object from the overlapping class:
21 MyClass S1 = new MyClass();
22 // Creating object from the hidden class:
23 MyBaseC.MyClass S2 = new MyBaseC.MyClass();
24 Console.WriteLine(S1.x);
25 Console.WriteLine(S2.x);
26 }
27 }
HTTPS : //my.oschina.net/weisenz/blog/200612 재현