是否可以在.NET 接口中创建私有成员?我听说现在可以了,但我的 IDE 拒绝了:
public interface IAnimal
{
void SetDefaultName(string name)
{
ChangeName(name);
}
private string defaultName = "NoName";
private void ChangeName(string name)
{
defaultName = name;
}
void Breath()
{
Console.WriteLine($"Default - I'm {defaultName}. <Breathing sounds>");
}
void Sound();
}
Run Code Online (Sandbox Code Playgroud)
是的!现在您可以在 C# 8.0 中使用,但它必须是静态成员。像这样:
public interface IAnimal
{
static void SetDefaultName(string name)
{
ChangeName(name);
}
private static string defaultName = "NoName";
private static void ChangeName(string name)
{
defaultName = name;
}
void Breath()
{
Console.WriteLine($"Default - I'm {defaultName}. <Breathing sounds>");
}
void Sound();
}
Run Code Online (Sandbox Code Playgroud)
但您需要记住,静态字段将在整个应用程序中共享。更改defaultName将导致您使用的每个地方都更改它IAnimal