인터페이스가 있습니다 IResourcePolicy
속성이 포함 된 가 있습니다 Version
. 다른 페이지에 작성된 코드, 값을 포함하는이 속성을 구현해야합니다.
IResourcePolicy irp(instantiated interface)
irp.WrmVersion = "10.4";
속성을 어떻게 구현할 수 version
있습니까?
public interface IResourcePolicy
{
string Version
{
get;
set;
}
}
답변
인터페이스에서 다음 특성을 지정하십시오.
public interface IResourcePolicy
{
string Version { get; set; }
}
구현 클래스에서 구현해야합니다.
public class ResourcePolicy : IResourcePolicy
{
public string Version { get; set; }
}
이것은 비슷해 보이지만 완전히 다른 것입니다. 인터페이스에는 코드가 없습니다. getter와 setter가있는 속성이 무엇이든간에 지정하면됩니다.
수업에서는 실제로 구현합니다. 가장 짧은 방법은이 { get; set; }
구문을 사용하는 것 입니다. 컴파일러는 필드를 작성하고 이에 대한 getter 및 setter 구현을 생성합니다.
답변
이런 말인가요?
class MyResourcePolicy : IResourcePolicy {
private string version;
public string Version {
get {
return this.version;
}
set {
this.version = value;
}
}
}
답변
인터페이스에는 구현을 포함 할 수 없습니다 (기본값 포함). 추상 클래스로 전환해야합니다.
답변
인터페이스에서 속성을 사용하는 간단한 예 :
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.
*/
답변
- 하지만 이미 irp.WrmVersion = “10.4”와 같은 값을 할당했습니다.
J.Random Coder의 답변 및 초기화 버전 필드.
private string version = "10.4';
답변
속성을 초기화하려면 abstract 클래스를 사용해야합니다. Inteface에서 초기화 할 수 없습니다.