您的位置:首页 > 编程语言 > C#

C# 接口可以有字段field吗?

2011-10-12 14:39 127 查看
代码如下:

interface Interface1
{
string name;
void ttt();

}

编译会抱错:Interfaces cannot contain fields.

可见,c#接口里不能有字段field。

那这种需求如何解决呢?

查一下msdn即知接口可以包含的成员如下:

Methods

Properties

Indexers

Events

也就是说,c#可以有属性,它是字段的安全升级版。

代码如下,仅仅在name后加个大括号,敲进去get,set之一即可。

interface Interface1
{
string name { get; }
void ttt();
}

在实现这个接口的类中,除了要给属性方法显示手动的加上public外,

class Class1 : Interface1
{
public string name
{
get
{
return "abc";
}
}

public void ttt()
{
}
}

Using Properties (C# Programming Guide)
http://msdn.microsoft.com/en-us/library/w86s7x04(v=vs.80).aspx

interface (C# Reference)
http://msdn.microsoft.com/en-us/library/87d83y5b(v=vs.80).aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: