0

私はこれの理由を理解しようとしています...そして、IInterface構文を使用するときにコンパイラに何をするように指示しているのかという概念を理解するのに本当に苦労しています。「これは何が起こっているのか」という方法で説明できる人はいますか?

とにかく...私の主な質問は....

違いは何ですか

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

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

なぜあなたは一方を他方よりも使用するのですか?

4

3 に答える 3

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

コンパイルされません。それが 1 つの違いです。

しかし、あなたは持っている可能性があります

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>。このインスタンスは、文字列の配列、List<string>、または作成した何らかの型である可能性があります。

あなたが言うときpublic class MyClass : IEnumerable<string> {...}、あなたは実装する型を宣言していますIEnumerable<string>。MyClass のインスタンスは、MyMethod によって返される可能性があります。

于 2009-04-02T22:52:15.043 に答える
0

1つ目は、クラス内に存在する限り、有効なメソッド宣言です。

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

2 番目は有効な C# ではなく、コンパイルされません。Class 宣言に近いですね。

class MyClass : IEnumerable<string>
{

}
于 2009-04-02T22:54:16.850 に答える