2017-04-04 29 views
9

Trong Visual Studio 2017, trong "Hoạt động nhanh và tái cấu trúc" menu, khi tôi bấm vào nút "Thực hiện giao diện", tôi nhận được hiện thực mà sử dụng các tính năng mới của C#, như thế này:Lệnh "Triển khai Giao diện" của Visual Studio 2017 có thể tạo mã C# 5 không?

public int ConnectionTimeout => throw new NotImplementedException(); 

Các vấn đề là công ty của tôi đang sử dụng C# 5 và vì vậy chúng tôi không thể sử dụng cú pháp mới hơn này. Tôi biết các phiên bản Visual Studio cũ hơn sẽ tạo mã này thay thế:

public int ConnectionTimeout { get { throw new NotImplementedException(); } } 

Có cách nào để Visual Studio 2017 thực hiện việc này không? Tôi đã thiết lập dự án của mình để biên dịch bằng C# 5.

Chỉnh sửa: Tôi nhận thấy rằng trình tạo mã không nhất quán. Nếu giao diện có một thành viên bool chỉ có một getter, nó sử dụng cú pháp cũ. Nếu không, nó sẽ sử dụng cú pháp mới. Điều này khiến tôi nghĩ rằng tôi không may mắn.

private interface myint 
{ 
    bool bool1 { get; } 
    bool bool2 { get; set; } 
    bool bool3 { set; } 

    int int1 { get; } 
    int int2 { get; set; } 
    int int3 { set; } 

    string string1 { get; } 
    string string2 { get; set; } 
    string string3 { set; } 
} 

private class myclass : myint //I clicked "Implement Interface" on this 
{ 
    public bool bool1 
    { 
     get 
     { 
      throw new NotImplementedException(); 
     } 
    } 

    public bool bool2 { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } 
    public bool bool3 { set => throw new NotImplementedException(); } 

    public int int1 => throw new NotImplementedException(); 

    public int int2 { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } 
    public int int3 { set => throw new NotImplementedException(); } 

    public string string1 => throw new NotImplementedException(); 

    public string string2 { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } 
    public string string3 { set => throw new NotImplementedException(); } 
} 
+0

trên các tính chất dự án, trong tab tiên tiến, không thay đổi ngôn ngữ mặc định C# 5 thay đổi mã autogened? – Kyle

+1

@Kyle, không phải vậy. Tôi quên thêm điều đó vào câu hỏi của mình – user2023861

Trả lời

8

Đến Tools -> Options -> Text Editor -> Mã Style -> General, cuộn tới Tùy chọn khối phần và thay đổi sở thích Đối với tài sản, Đối indexersĐối với người truy cập từ "Ưu tiên khối biểu thức" (mặc định) thành "Ưu tiên khối thân".

enter image description here

Các vấn đề liên quan