C\#4.0 입문 제1장 dynamic 유형-첫 페이지 dynamic 유형(
3279 단어 dynamic
C\#1.0 버 전부터 한 대상 의 유형 을 모 르 더 라 도 컴 파일 할 때 이 대상 의 정 보 를 동적 으로 방문 할 수 있 습 니 다.반사 만 사용 하면 돼.
방문 대상 의 구성원 정 보 를 반사 적 으로 사용 합 니 다.
class A
{
public readonly string MyName = " ";
public static object GetObjectA() { return new A(); }
}
class Program
{
static void Main(string[] args)
{
object a = A.GetObjectA();
var name = a.GetType().GetField("MyName").GetValue(a);
Console.WriteLine(name);
}
}
상례 의 집행 결과
보시 다시 피 Main 방법 에 서 는 GetObjectA 방법 에서 어떤 유형의 대상 을 되 돌 렸 는 지 모 르 고 반사 기능 을 이용 하여 대상 의 필드 값 을 되 돌 릴 수 있 습 니 다.이른바'동적'처리 라 는 것 이다.
C\#4.0 에서 dynamic 형식 을 가 져 와 이 조작 을 대폭 간소화 할 수 있 습 니 다.
dynamic 형식 으로 대상 에 접근 하 는 구성원 정보 사용
using System;
class A
{
public readonly string MyName = " ";
public static dynamic GetObjectA() { return new A(); }
}
class Program
{
static void Main(string[] args)
{
dynamic a = A.GetObjectA();
Console.WriteLine(a.MyName);
}
}
물론 Main 에 서 는 GetObjectA 방법 이 되 돌아 오 는 대상 이 A 형식 인 지 는 모 르 지만 MyName 필드 의 값 을 얻 을 수 있 습 니 다.이름 만 일치 하면 방문 이 가능 해 반사 중인 접근 기능 과 동일 하기 때문이다.이름 이 일치 하 는 지 여 부 는 컴 파일 할 때 검사 하 는 것 이 아니 라 실행 할 때 검사 하 는 것 이기 때문이다.일치 하지 않 더 라 도 컴 파일 시 오류 가 아니 라 실행 중 이상 을 던 집 니 다.또한,실행 할 때 주어진 이름과 같은 멤버 를 찾 아야 하기 때문에 운행 속도 가 지연 된다.■다이나믹 타 입 을 일괄 호출 하 는 특징 중 하 나 는 대상 의 타 입 을 모 르 더 라 도 대상 에 접근 할 수 있 지만,어떤 경우 에는 대상 의 타 입 을 알 더 라 도 다이나믹 타 입 을 통 해 접근 해 야 한 다 는 것 이다.
다음 예 는 두 가지'새'류 의 정의 로 이 두 가지 유형 은 계승 관계 가 없고 완전히 독립 적 으로 존재 한다.이런 상황 에서 일반적인 방법 으로 는 그것들 중의 어떤 방법 을 통일 적 으로 호출 할 수 없다.따로 포장 할 수 있 더 라 도 서로 다른 유형 에 대해 따로 호출 해 야 한다.이처럼 상속 관계 가 없 는 두 개의 클래스 를 통일 적 으로 호출 하 는 것 은 불가능 하기 때문이다.그러나 이 제 는 dynamic 형식 을 통 해 이름,파라미터 와 유형 이 일치 하면 통일 적 으로 호출 할 수 있 습 니 다.다음 예 에 서 는 통일 적 인 울 음소 리 방법 에서 두 가지 유형 중 같은 방법 을 집중 적 으로 사용 했다.
다이나믹 형식 으로 접근
using System;
class
{
public void ()
{
Console.WriteLine(" !");
}
}
class
{
public void ()
{
Console.WriteLine(" ");
}
}
class Program
{
private static void (dynamic )
{
. ();
}
static void Main(string[] args)
{
((dynamic)new ());
((dynamic)new ());
}
}
상례 의 집행 결과
!
!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
API의 데이터가 포함된 Nuxt 2 동적 사이트맵일부 데이터 세트/api에서 사이트맵을 동적으로 구축하려는 경우 이것이 적합합니다. nuxt 프로젝트에서 익스프레스 API를 활성화했는지 여부에 관계없이 이 쉬운 3단계 프로세스를 통해 원하는 결과를 얻을 수 있습니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.