:から(問題なくコンパイルパラメータ:(必須、オプション)対(必須、必要、オプション)Iは、以下の方法定義した
void Write(string fileContent, string fileName, string container = StorageBlobContainers.ProfilePictures)
コードを、私はそれを実行するコードを書い別のファイル):
string json = JsonConvert.SerializeXNode(node);
FileProcessor.Write(json, "productscontainer");
しかし、何らかの理由でそれは何もしなかったようです。
問題を理解するのに苦労して数分後、私はついにそれを見つけました。
void Write(string filePath, string container = StorageBlobContainers.ProfilePictures)
{
if (!File.Exists(filePath))
return string.Empty;
...
それがうまくコンパイル行ったようにこれは本当に、私は混乱し、一つの方法は、3パラメータ署名と持っているとして、もちろん、それは理にかなって:どこか同じクラスで、次のように定義されたWrite
機能がすでにありました他の人は2人ですが、これはあまりあいまいではなく、エラーが発生しやすいでしょうか?私にとっては、どちらの方法も「論理的」なものではないようです。なぜ、第2のものが他のものよりも選ばれているのですか?
「なぜ2番目のものが他のものよりも優先されますか?」 - それらは言語の規則なので。もしあなたが望むなら、私たちは言語仕様からほこりを取り除いて、その点につながる具体的な理由を指摘することができますが、あなたをさらに進めることはありません。 –
第2の方法はどのように論理的な選択肢ではないのですか? 2つの文字列パラメータを持つメソッドを呼び出すと、2つの文字列パラメータを持つメソッドが選択されます。それは完璧なフィット感です。 –
また、オプションのパラメータがバージョン1以降の言語に追加されていることに留意してください。古いコードに戻ってデフォルトを追加するだけで、以前にコンパイルされたコードがコンパイルに失敗したり、 –