我有一个类处理一些用户界面的东西,让我们调用这个类和实例用户界面为例.
在这个类中,我将有一个 colored颜色 类型的对象:
public class Colors {
public ConsoleColor Primary { get; set; } = ConsoleColor.White;
public ConsoleColor Default { get; set; } = ConsoleColor.Gray;
public ConsoleColor Input { get; set; } = ConsoleColor.Gray;
public ConsoleColor Success { get; set; } = ConsoleColor.Green;
public ConsoleColor Error { get; set; } = ConsoleColor.Red;
public ConsoleColor Highlight { get; set; } = ConsoleColor.Blue;
}
在UI中,我有:
public static class UI {
public static readonly Colors Colors = new();
public static void ConfigureColors(Action<Colors> modification) {
modification.Invoke(Colors);
}
}
问题是,我希望能够像这样访问UI外部的Colors属性的getter:
var primaryColor = UI.Colors.Primary;
但不是二传手...
UI.ConfigureColors(colors => {
colors.Primary = ConsoleColor.Yellow;
});
UI.Colors.Primary = ConsoleColor.Green;
但是我只希望能够使用ConfigureColors()方法设置 colored颜色 .
我试着在Colors类中处理属性的可访问性,比如使它们成为只读或"私有集",但我想到的所有修改都导致这两个选项都不起作用.