Answers:
在界面中,指定属性:
public interface IResourcePolicy
{
string Version { get; set; }
}
在实现类中,您需要实现它:
public class ResourcePolicy : IResourcePolicy
{
public string Version { get; set; }
}
看起来很相似,但是完全不同。在界面中,没有代码。您只需指定一个具有getter和setter的属性,无论它们将做什么。
在课堂上,您实际上实现了它们。最简单的方法是使用此{ get; set; }
语法。编译器将创建一个字段并为其生成getter和setter实现。
Version
在课堂上是公开的?嗯,我看到了我的问题:如果您明确实现接口(例如IResourcePolicy.Version
,您无法定义它是否是公共的。)
接口不能包含任何实现(包括默认值)。您需要切换到抽象类。
在接口中使用属性的简单示例:
using System;
interface IName
{
string Name { get; set; }
}
class Employee : IName
{
public string Name { get; set; }
}
class Company : IName
{
private string _company { get; set; }
public string Name
{
get
{
return _company;
}
set
{
_company = value;
}
}
}
class Client
{
static void Main(string[] args)
{
IName e = new Employee();
e.Name = "Tim Bridges";
IName c = new Company();
c.Name = "Inforsoft";
Console.WriteLine("{0} from {1}.", e.Name, c.Name);
Console.ReadKey();
}
}
/*output:
Tim Bridges from Inforsoft.
*/
您应该使用抽象类来初始化属性。您不能在Inteface中初始化。