집 >백엔드 개발 >C#.Net 튜토리얼 >C# 6의 새로운 기능에 대한 간략한 소개
몇 주 전에 저는 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; }참고 기본 생성자가 호출됩니다. 반에서 제일 위에 있어요.