私は現在いくつかのC#コードを見ていますが、それがどのように機能するかを理解するのに苦労していないことを確認したいと思いました。
これは、System.ServiceModel.Channels.Messageを渡すことと関係があります。Messageオブジェクトを受け取るすべてのメソッドには、次のようなメソッドシグネチャがあります。
void SomeMethod(ref Message message) { ... }
私が理解していないのは、なぜ「ref」キーワードがそこにあるのかということです。私の理解では、メソッドがオブジェクトを完全に置き換える予定がない場合は、それは必要ありません。
void SomeMethod(ref Message message)
{
message = new Message();
}
ただし、たとえば、メッセージがヘッダーに何か他のものを追加する場合、またはオブジェクトから値を読み取る場合は、メッセージが参照型であるため、「ref」キーワードは必要ありません。
void SomeMethod(Message message)
{
message.Headers.Add("Some Data"); // This should be fine?
}
乾杯