我是C#的新手。您能告诉我如何将接口作为参数传递给方法吗? 即我想访问接口成员(属性)并为其分配值并将该接口作为参数发送到另一个方法。
例如,如果我的界面为 IApple ,其成员为 int i 和 int j 我想将值分配给 i 和 j ,并将整个界面作为参数发送,如下所示
方法(IApple var);
有可能吗?对不起,如果基础知识差,请帮助我。提前谢谢
答案 0 :(得分:31)
确定这是可能的
public interface IApple
{
int I {get;set;}
int J {get;set;}
}
public class GrannySmith :IApple
{
public int I {get;set;}
public int J {get;set;}
}
//then a method
public void DoSomething(IApple apple)
{
int i = apple.I;
//etc...
}
//and an example usage
IApple apple = new GrannySmith();
DoSomething(apple);
答案 1 :(得分:7)
假设您有以下课程:
public interface IApple{
int I {get; set;}
int J {get; set;}
}
public class GrannySmith : IApple{
public GrannySmith()
{
this.I = 10;
this.J = 6;
}
int I {get; set;}
int J {get; set;}
}
public class PinkLady : IApple{
public PinkLady()
{
this.I = 42;
this.J = 1;
}
int I {get; set;}
int J {get; set;}
}
public class FruitUtils{
public int CalculateAppleness(IApple apple)
{
return apple.J * apple.I;
}
}
现在您可以在程序的某个地方写下:
var apple = new GrannySmith();
var result = new FruitUtils().CalculateAppleness(apple);
var apple2 = new PinkLady();
var result2 = new FruitUtils().CalculateAppleness(apple2);
Console.WriteLine(result); //Produces 60
Console.WriteLine(result2); //Produces 42