我是C#的新手.你能告诉我如何将接口作为参数传递给方法吗?
即我想访问接口成员(属性)并为其分配值并将该接口作为参数发送到另一个方法.
例如,如果我有一个接口作为IApple,其成员作为属性int i和int j 我想为i和j分配值并将整个接口作为参数发送如下所示
方法(IApple var);
可能吗?对不起,如果基础知识差,请帮助我.提前致谢
Ric*_*end 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);
Run Code Online (Sandbox Code Playgroud)
假设您有以下课程:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
现在你的程序中的某个地方你可以写:
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
Run Code Online (Sandbox Code Playgroud)