屬性能有什么事情,C#里面寫起來相當方便
public class Sample
{
public int A { get; set; }
public string B { get; set; }
}
當然還有get和set前面還可以添加成員訪問修飾符
public 訪問不受限制,
protected 訪問限于包含類或派生自包含類的型別,
internal 訪問限于當前程式集,
protected internal 訪問限于當前程式集或派生自包含類的型別,
private 訪問限于包含類,
private protected 訪問限于包含類或當前程式集中派生自包含類的型別, 自 C# 7.2 之后可用,
還能設定成只有get莫有set的屬性,
這么多選項一組合,眼花繚亂,當年單干戶的時候,基本不用,反正都是自己訪問的,全部public使用起來最方便,
現在小團隊運行,問題來了,經常在叫A你怎么沒有賦值?你怎么把B改了?
public class RequestSample
{
public int R { get; set; }
public int S { get; set; }
}
public class ResponseSample
{
public int A { get; set; }
public string B { get; set; }
}
public interface ISmaple
{
ResponseSample MethodSample(RequestSample item);
}
如上面的介面,請求類和回傳類的屬性全部預設都是public,就會發生各種需要靠嘴協調的事情,
咱是程式員,咱不磨嘴皮子,靠代碼說話,
1.別動我的請求引數,你只能看看,咱只需要寫成如下方式之一
public class RequestSample
{
public int R { get;private set; }
public int S { get;private set; }
}
public class RequestSample
{
public int R { get; }
public int S { get; }
}
2.回傳格式必須按我說的辦,你別亂來,咱也得受累,寫成如下方式之一
public class ResponseSample
{
public int A { get; }
public string B { get; }
public ResponseSample(int a, string b) => (A, B) = (a, b);
}
public class ResponseSample
{
public int A { get; }
public string B { get; private set; }
public ResponseSample()
public ResponseSample(int a, string b) => (A, B) = (a, b);
public void OnlyB(string b) => B = b;
}
當然還有其他組合...
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/172071.html
標籤:C#
