我正在努力理解 - 为什么......我正在努力去理解当我使用IInterface语法时我告诉编译器要做的事情的概念。任何人都可以用“这是怎么回事”来解释它?
无论如何......我的主要问题是......
之间有什么区别
public IEnumerable<string> MyMethod() {...}
和
public string MyMethod() : IEnumerable {...}
为什么要使用一个而不是另一个?
答案 0 :(得分:4)
public string MyMethod() : IEnumerable {...}
不会编译,这是一个区别。
但你可以
public class MyClass : IEnumerable<string> {...}
然后
public IEnumerable<string> MyMethod()
{
MyClass mc = new MyClass();
return mc;
}
答案 1 :(得分:1)
当您说public IEnumerable<string> MyMethod() {...}
时,您声明了一个返回实现IEnumerable<string>
的实例的方法。此实例可能是一个字符串数组,List<string>
或您创建的某种类型。
当您说public class MyClass : IEnumerable<string> {...}
时,您声明了一种实现IEnumerable<string>
的类型。 MyMeth的一个实例可以由MyMethod返回。
答案 2 :(得分:0)
第一个是有效的方法声明,只要它生活在一个类中 即
class MyClass
{
public IEnumerable<string> MyMethod() {...}
}
第二个是无效的C#,不会编译。它接近于一个Class声明,tho。
class MyClass : IEnumerable<string>
{
}