接口中的公共变量

本文关键字:变量 接口 | 更新日期: 2023-09-27 18:13:42

我在读这篇文章时,注意到了问题中的第二点:

另一个面试官问我,如果你有一个公共变量会怎么样在接口内部,这与抽象中有什么不同课吗?我坚持你不能在接口。我不知道他想听什么,但他不是满意。

我看了答案,似乎没有一个能澄清这一点,除了这个:

为。net

,

你对第二个面试官的回答也是第一个面试官的回答一个……抽象类可以有实现、和状态接口不能…

我认为面试官的回答是正确的,因为你不能在界面中有任何变量。我有点糊涂了。有人能解释一下吗?我的问题是,为什么面试官问这么奇怪的问题?

接口中的公共变量

所有接口成员都是隐式公共的,这就是为什么你不能在接口中使用带有属性或方法的public

接口c# - MSDN

接口成员自动是公共的,它们不能包含任何成员访问修饰符。成员也不能是静态的。

对于您的问题:

我认为面试官的回答是正确的,因为你不可能接口内的任何变量

。您可以在接口中定义属性。比如:

interface ITest
{
    int MyProperty { get; set; }
}
public class TestClass : ITest
{
    public int MyProperty
    {
        get
        {
            throw new NotImplementedException();
        }
        set
        {
            throw new NotImplementedException();
        }
    }
}
编辑:

另一个面试官问我,如果你有一个公共变量会怎么样在接口内部,这与抽象中有什么不同课吗?

可能面试官想知道你是否会说接口中的所有成员在默认情况下都是公共的,而在抽象类中你可以有私有的,受保护的,公共的成员等等

再补充一下Habib的回答,接口中的所有东西都是公共的,因为私有的东西没有任何意义,因为它不能有任何实现,私有成员永远不会被使用,它不能被使用,因为没有什么可以使用它。

我想这是一个你需要再详细说明一下的问题,我觉得这是个不错的问题。