簡體   English   中英

運行帶有錯誤的C#protobuf示例

[英]run C# protobuf example with errors

我是C#的新手,我在MacOS上安裝了Rider,並在解決方案中安裝了Google.Protobuf和protobuf-net。 我在link上找到了C#protobuf的示例,並將文件添加到解決方案中。 但是,當我編譯.cs文件時,出現了這些錯誤。

Addressbook.cs(263,57):[CS1615]參數1可能無法與'ref'關鍵字一起傳遞
Addressbook.cs(445,61):[CS1615]參數1可能無法與'ref'關鍵字一起傳遞
Addressbook.cs(580,57):[CS1615]參數1可能無法與'ref'關鍵字一起傳遞

那么如何解決這些問題呢?

這似乎是方法的參數不接受一個參考: ref argument ;

若要解決此問題,請確保刪除Addressbook.cs文件的第263、445、580行中的參數之前的ref

給出的例子:

if (!pb::UnknownFieldSet.MergeFieldFrom(ref _unknownFields, input)) {
          return;
}

應該:

if (!pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input)) {
          return;
}

通過比較官方示例和protoc --csharp_out文件,我發現差異出現在@nnty提到的子句中。 在官方示例中,該子句被替換為

_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);

因此,用上述句子更改所有錯誤的位置可能有助於解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM