我目前正在查看一些 C# 代码,我想检查一下我对它应该如何工作的理解并没有发疯。
这与传递 System.ServiceModel.Channels.Message 有关。每个接受 Message 对象的方法都有一个类似于下面的方法签名:
void SomeMethod(ref Message message) { ... }
我不明白为什么“ref”关键字在那里。据我了解,如果该方法不会完全替换对象,则不需要它。
void SomeMethod(ref Message message)
{
message = new Message();
}
但是,例如,如果消息只是将其他内容添加到标题中,或者只是从对象中读取值,则不需要“ref”关键字,因为 Message 是引用类型。
void SomeMethod(Message message)
{
message.Headers.Add("Some Data"); // This should be fine?
}
干杯