C# 6의 새로운 기능에 대한 간략한 소개

伊谢尔伦
풀어 주다: 2016-11-24 11:51:42
원래의
1254명이 탐색했습니다.

몇 주 전에 저는 C#6의 몇 가지 새로운 기능에 대해 여러 곳에서 읽었습니다. 아직 읽지 않으신 분들도 한 번에 보실 수 있도록 모두 모아두기로 했습니다. 그 중 일부는 예상만큼 마법적이지 않을 수도 있지만 현재로서는 업데이트일 뿐입니다.

VS2014를 다운로드하거나 여기에서 Visual studio2013용 Roslyn 패키지를 설치하여 얻을 수 있습니다.

 한 번 살펴보겠습니다:

 1. $ 식별자

 $의 역할은 문자열 인덱싱을 단순화하는 것입니다. 이는 내부적으로 정규식 일치를 사용하는 C#의 인덱싱의 동적 특성과 다릅니다. 예시는 다음과 같습니다.

var col = new Dictionary<string, string>()
            {
                $first = "Hassan"
            };
 
   //Assign value to member
   //the old way:
   col.$first = "Hassan";
 
   //the new way:
   col["first"] = "Hassan";
로그인 후 복사

2. 예외 필터

VB 컴파일러에서는 이미 예외 필터를 지원했고, 이제는 C#에서도 지원합니다. 예외 필터를 사용하면 개발자는 특정 조건에 대한 catch 블록을 만들 수 있습니다. catch 블록의 코드는 조건이 충족될 때만 실행됩니다. 이는 제가 가장 좋아하는 기능 중 하나입니다. 예는 다음과 같습니다.

try
            {
                throw new Exception("Me");
            }
            catch (Exception ex) if (ex.Message == "You")
로그인 후 복사

3. catch 및 finally 블록의 키워드 🎜>

내가 아는 한 C# 5의 catch 및 finally 코드 블록에서 wait 키워드를 사용할 수 없는 이유를 아는 사람은 아무도 없습니다. 어떻게 작성하든 사용할 수 없습니다. 개발자는 종종 I/O 작업 로그를 보고 싶어하며 캡처된 예외 정보를 로그에 기록하려면 이 작업을 비동기적으로 수행해야 하기 때문에 이는 좋습니다.

try
            {
                DoSomething();
            }
            catch (Exception)
            {
                await LogService.LogAsync(ex);
            }
로그인 후 복사
 4. 선언식

개발자가 표현식에 변수를 정의할 수 있는 기능입니다. 이것은 간단하지만 실용적입니다. 과거에 asp.net을 사용하여 많은 웹사이트를 구축했습니다. 제가 자주 사용하는 코드는 다음과 같습니다.

long id;
if (!long.TryParse(Request.QureyString["Id"], out id))
{ }
로그인 후 복사
최적화된 코드:

if (!long.TryParse(Request.QureyString["Id"], out long id))
{ }
로그인 후 복사
이 선언 방법에서 변수의 역할 범위는 C#의 일반적인 변수 선언 방법과 동일합니다.

5. Static 사용

이 기능을 사용하면 using 문에서 특정 유형을 지정한 다음 이 유형의 모든 정적 멤버를 후속 절에서 사용할 수 있습니다.

using System.Console;
 
namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            //Use writeLine method of Console class
            //Without specifying the class name
            WriteLine("Hellow World");
        }
    }
}
로그인 후 복사
6. 속성 자동 초기화:

C# 6의 자동 편안한 속성은 선언 위치의 필드와 같습니다. 여기서 알아야 할 유일한 것은 이 초기화로 인해 setter 메서드가 내부적으로 호출되지 않는다는 것입니다. 배경 필드 값은 직접 설정됩니다. 예는 다음과 같습니다.

public class Person
    {
        // You can use this feature on both
        //getter only and setter / getter only properties
 
        public string FirstName { get; set; } = "Hassan";
        public string LastName { get; } = "Hashemi";
    }
로그인 후 복사
7. 기본 생성자 :

하하하, 기본 생성자는 생성자 매개변수를 가져와 후속 작업을 지원하기 위해 이를 클래스의 필드로 설정하는 수고를 없애는 데 도움이 됩니다. 이 기능의 주요 목적은 초기화에 생성자 매개변수를 사용하는 것입니다. 기본 생성자가 선언되면 다른 모든 생성자는 :this()를 사용하여 이 기본 생성자를 호출해야 합니다.

마지막으로 다음 예는 다음과 같습니다.

//this is the primary constructor:
    class Person(string firstName, string lastName)
    {
        public string FirstName { get; set; } = firstName;
        public string LastName  { get; } = lastName;
    }
로그인 후 복사
참고 기본 생성자가 호출됩니다. 반에서 제일 위에 있어요.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!