>백엔드 개발 >C#.Net 튜토리얼 >C#에서 var와 동적의 차이점은 무엇입니까?

C#에서 var와 동적의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-04-17 11:46:415144검색

C#에서는 var 및 Dynamic 키워드 모두 동적으로 유형이 지정된 변수를 선언할 수 있습니다. 때로는 혼동되기 쉽지만 본질적으로 다릅니다. 다음 글에서는 C#의 var 키워드와 Dynamic 키워드의 차이점을 소개하겠습니다. 도움이 되셨으면 좋겠습니다. [동영상 튜토리얼 추천: C# tutorial]

C#에서 var와 동적의 차이점은 무엇입니까?

C# var 키워드

var는 3.5의 새로운 유형의 변수 정의입니다. 암시적 유형은 암시적 유형의 로컬 유형을 정의하는 데 사용할 수 있습니다. 변수, VAR은 모든 유형을 대체할 수 있습니다.

암시적 유형 변수는 데이터 유형을 명시적으로 지정하지 않고 선언된 변수입니다. 암시적으로 형식화된 변수에서 컴파일러는 컴파일 타임에 변수를 초기화하는 데 사용된 값에서 변수 형식을 자동으로 추론합니다. 암시적으로 형식화된 변수의 개념은 C# 3.0에서 도입되었습니다. 암시적으로 형식화된 변수는 일반 변수 선언을 대체하도록 설계된 것이 아니라 LINQ(Language Integrated Query)와 같은 일부 특수한 사례를 처리하도록 설계되었습니다.

예:

using System; 
  
class A{ 
  
    // Main方法
    static public void Main() 
    { 
  
        // 使用var关键字创建和初始化隐式类型变量
        var a = 'f'; 
        var b = "php"; 
        var c = 30.67d; 
        var d = false; 
        var e = 54544; 
  
        // 输出类型 
        Console.WriteLine("'a'的类型是: {0} ", a.GetType()); 
  
        Console.WriteLine("'b'的类型是: {0} ", b.GetType()); 
  
        Console.WriteLine("'c'的类型是: {0} ", c.GetType()); 
  
        Console.WriteLine("'d'的类型是: {0} ", d.GetType()); 
  
        Console.WriteLine("'e'的类型是: {0} ", e.GetType()); 
    } 
}

출력:

'a'的类型是: System.Char 
'b'的类型是: System.String 
'c'的类型是: System.Double 
'd'的类型是: System.Boolean 
'e'的类型是: System.Int32

C# 동적 키워드

dynamic은 4.0의 새로운 유형의 변수 정의입니다. 동적 유형은 컴파일 시간 유형 검사를 방지하는 데 사용됩니다. 컴파일러는 컴파일 타임에 동적으로 유형이 지정된 변수의 유형을 확인하지 않습니다. 대신 컴파일러는 런타임에 유형을 얻습니다. 동적으로 유형이 지정된 변수는 동적 키워드를 사용하여 생성됩니다.

예:

using System; 
  
class A { 
  
    // Main方法
    static public void Main() 
    { 
  
        // 使用dynamic关键字创建和初始化隐式类型变量
dynamic val1 = 'a'; 
        dynamic val2 = "hello"; 
        dynamic val3 = 3234; 
        dynamic val4 = 32.55; 
        dynamic val5 = true; 
  
        // 输出类型 
Console.WriteLine("val1的实际类型是:{0}", val1.GetType().ToString()); 
  
        Console.WriteLine("val2的实际类型是:{0}", val2.GetType().ToString()); 
  
        Console.WriteLine("val3的实际类型是:{0}", val3.GetType().ToString()); 
  
        Console.WriteLine("val4的实际类型是:{0}", val4.GetType().ToString()); 
Console.WriteLine("val5的实际类型是:{0}", val5.GetType().ToString()); 
    } 
}

출력:

val1的实际类型是:System.Char
val2的实际类型是:System.String
val3的实际类型是:System.Int32
val4的实际类型是:System.Double
val5的实际类型是:System.Boolean

C#에서 키워드 var와 동적의 차이점은 무엇입니까?

1. 선언된 변수

var 키워드는 C# 3.0에서 도입되었습니다. 선언된 변수는 정적으로 유형이 지정되며 변수 유형은 컴파일 타임에 결정됩니다.

dynamic이라는 키워드는 C# 4.0에서 도입되었으며, 선언된 변수는 동적으로 형식화되고 변수 형식은 런타임 시 컴파일러에 의해 결정됩니다.

2. 초기화

var 키워드로 선언된 변수는 선언 시 초기화되어야 컴파일러가 초기화된 값에 따라 변수의 유형을 결정합니다. 변수가 초기화되지 않으면 오류가 발생합니다.

dynamic 키워드로 선언된 변수는 선언 시 이 유형의 변수를 초기화할 필요가 없습니다. 왜냐하면 컴파일러는 컴파일 타임에 변수 유형을 알 수 없기 때문입니다. 변수가 초기화되지 않으면 오류가 발생하지 않습니다.

3. IntelliSense 지원

var 키워드는 Visual Studio에서 IntelliSense를 지원합니다. Visual Studio

4. Application

var 키워드는 속성에 사용하거나 함수에서 값을 반환하는 데 사용할 수 없습니다. 함수 내에서 지역 변수로만 사용할 수 있습니다.

dynamic 키워드는 속성이나 함수에서 값을 반환하는 데 사용할 수 있습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 C#에서 var와 동적의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.