ができないのはなぜで二つの方法で宣言され、同じ署名をもた戻り値の型がない、ということでしょうか?[重複]

StackOverflow https://stackoverflow.com/questions/584664

  •  06-09-2019
  •  | 
  •  

質問

複製: 機能過負荷による戻り値の型?


ることを非常にゃがいかに決定されるかという問題かわからないのはなぜかを宣言するのに二つの方法では、同じ署名が異なるを返します。

public class MyClass
{
    private double d = 0;

    public double MyMethod()
    {
        return d;
    }

    public string MyMethod()
    {
        return d.ToString();
    }
}

を取得しますコンパイルエラーはクラスで定義一員と同じパラメータです。

(この方法を使用しているこの私のコードなどに簡単に私の例のコー---と思う女将が切り盛りしているこの店の考えます。)

私を見落とさないようにOOデザインとなってどのようにしていなOOP反ん。確かにコンパイラできると判断する方法を私は利用しようとして具体的にお伝えで私が最も気に入っています。

され MyClass myClass = new MyClass(); 私は期待以下のコードを作

double d = myClass.MyMethod();
string s = myClass.MyMethod();

私は期待される結果は次のように問題:

var v = myClass.MyMethod();

いなと思っているんですけれどもの場合 var この結果をコンパイルエラーが発生します。

誰でもできるので見えになっている間違った。私は喜んでの修正を行います。:-)

役に立ちましたか?

解決

での強制.

と言いますは、以下の機能をもっています:

int x(double);
float x(double);

double y = x(1.0);

現在、の二つのプロトタイプはお電話の場合いは全然違う?

基本的について下記のとおり決議いたの早い時期に設計された言語のみを使用関数名と引数を決定する実際の機能が呼び出され、またるまで新しい標準ホームページから確認できます。

今まで付いたご質問 C# なんかを設計することができる言語などを提案する.一つであるフラグエラーとして他の曖昧なコマンドは上記のような力、ユーザを指定することとも言うべきなどの鋳造:

int x(double);
float x(double);
double y = (float)(x(1.0));    // overload casting
double y = float:x(1.0);       // or use new syntax (looks nicer, IMNSHO)

このコンパイラを選びます。この作業でも一部の問題の答えしています。また曖昧なもの:

System.out.Println(myClass.MyMethod());

の特定:

System.out.Println(string:myClass.MyMethod());

これを可能にできることが追加され C# ればこのに規程やマイクロソフト株式会社listen)がいいかもしれませんが多くのチャンスできるのではないかと考えて追加され C または C++ な恐ろしく大量にいます。もっと拡張 gcc います。

他のヒント

あるから停止まらを呼び出す方法はなし"撮影"を返します。あらかに停止からやっています:

myClass.MyMethod();

どのようにコンパイラさんのパワーを呼び込むためには、その場合は?

編集:それに加えてクライアントまで、フルのC#3.0が利用できる var, どのコンパイラを知る方法だけ呼び出します:

var result = myClass.MyMethod();

では、戻り値の型をなすべての重要な時に呼び出しメソッドになっています。つながると思うから曖昧な場合が多い方法で異なるタイプです。ない場合がございますの結果変数、または何かのようになります:

System.out.Println(myClass.MyMethod());

コンパイラのないように図るとともに、にごっ金がかかる場合があります。

法署名および入力パラメータ(タイプ&ーダー)のみです。の戻り値の型は、署名を表します。このように二つの方法で同じ名前の入力パラメータが同一であり、相互の利益が相反している。

どの場合、変数だけ配の方法でお知らせのコンパイラのある方法です。想像:

Stringメッセージ="Result="+ます。MyMethod();

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top