class Program
{
static void Main(string[] args)
{
var users = new List<User>();
users.Add(new User { Id = 0, Score = 1 });
users.Add(new User { Id = 1, Score = 1 });
Func1(users, 2);
Func1(new List<User>(users), 3);
Func1(users.AsReadOnly().ToList(), 4);
Func2(ref users, 5);
}
static void Func1(List<User> u, int q) { u[0].Score = q; }
static void Func2(ref List<User> u, int q) { u[0].Score = q; }
}
class User
{
public int Id { get; set; }
public int Score { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我不希望在" Func1或"中更改"分数"属性Func2."Score"属性只能在Main()方法中更改.怎么做?
接口.
创建一个User实现的IUser接口,并为其赋予一个属性Score,其中只有一个getter,而不是一个setter.使函数采用IUser而不是User的列表.
Main将创建User,因此可以修改得分,而Func1和Func2只能访问getter,而无法修改它.
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |