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
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
相关文章推荐
- C# 禁止修改已装箱了的值类型的字段值,但是可以通过接口的方式实现
- C# 接口是否可以包含字段
- c#中接口可以包含字段吗
- c#中接口可以包含字段吗
- 详解C#接口以及实现/C# 接口中不能定义字段
- C# 属性(Property)和字段(Field)的区别
- C#创建类,方法,接口,字段 的 默认类型
- 反射可以通过FieldInfo.SetValue设置任何字段的值。
- C#的foreach可以遍历不继承IEnumerable接口的集合
- C# 反射对象的字段属性和实现的接口
- C# 资产(Property) 与普通字段(field)变量的区别
- 反射可以通过FieldInfo.SetValue设置任何字段的值
- C#写的怎样的接口可以通过http method=patch方式调用
- C#中域(FIELD)或稱字段(轉自 李建忠··Microsoft)
- C# 接口中能否定义字段?
- C#接口可以定义那些内容?<转载>
- C#可以自动在后台为属性创建字段
- c#学习摘录:类\继承\接口\字段、方法、属性\浅深复制(1)
- C#字段、接口、抽象解释
- c#学习摘录:类\继承\接口\字段、方法、属性\浅深复制(2)