outまたはrefパラメータを使用するメソッドを呼び出す場合、そのメソッドを呼び出すときにoutまたはrefでパラメータをマークする必要があるのはなぜですか?paramsの先頭にoutまたはrefを付ける必要があるのはなぜですか?
void DoStuff(int x, out int y)
{
y = x + 1;
}
void DoStuff(int x, ref int y)
{
y = x + 1;
}
その後、Visual Studioは、「それので、オーバーロードされたメソッド 『DoStuff』を定義することはできません報告します。私は、これは、オペレータがオーバーロードしたときにあいまいさを軽減するものだったが、私はそうのような2つのメソッドを作成した場合思っていたすなわち
DateTime.TryParse(myDate, out dateLogged)
他の方法とはrefとoutだけが異なる」と私はとにかくできませんでした。
EDIT:2つのオーバーロードされたメソッドがあった場合、私はメソッドを呼び出すときに出て指定するか、または参照する必要があると思わもう少し研究した後
はこのように宣言:
void DoStuff(int x, out int y)
void DoStuff(int x, int y)
あなたは本当にそれが暗黙的であることを望んでいません。予期しない変数変更の可能性を考慮してください。 – Jodrell
これはまたrefを見苦しく見せて、その人気を低下させ、コードをより保守しやすくするという利点があります。 (IMO) – Jodrell