0

我试图理解这个 -why- ......当我使用 IInterface 语法时,我真的很难理解我告诉编译器做什么的概念。任何人都可以用“这是怎么回事”的方式来解释它吗?

无论如何......我的主要问题是......

和有什么区别

public IEnumerable<string> MyMethod() {...}

public string MyMethod() : IEnumerable {...}

你为什么要使用一个而不是另一个?

4

3 回答 3

4
public string MyMethod() : IEnumerable {...}

不会编译,这是一个区别。

但你可以

public class MyClass : IEnumerable<string> {...}

接着

public IEnumerable<string> MyMethod() 
{
   MyClass mc = new MyClass();
   return mc;
}
于 2009-04-02T22:48:23.337 回答
1

当您说时public IEnumerable<string> MyMethod() {...},您是在声明一个方法,该方法返回一些实现的实例IEnumerable<string>。这个实例可能是一个字符串数组、aList<string>或您创建的某种类型。

当您说时public class MyClass : IEnumerable<string> {...},您是在声明一个实现的类型IEnumerable<string>。MyMethod 可以返回 MyClass 的一个实例。

于 2009-04-02T22:52:15.043 回答
0

第一个是有效的方法声明,只要它存在于类中,即

class MyClass 
{
    public IEnumerable<string> MyMethod() {...}
}

第二个是无效的 C# 并且不会编译。它接近于类声明。

class MyClass : IEnumerable<string>
{

}
于 2009-04-02T22:54:16.850 回答