Visual Studio предлагает мне сделать методы структуры доступными только для чтения. Что это значит? Я думал, что только поля могут быть доступны только для чтения, а не методы.
Код: Выделить всё
public struct MyStruct {
...
// I have this
public void MyMethod() { ... }
// VS wants me to write this
public readonly void MyMethod() { ... }
}
Мне не удалось найти четкого описания методов, помеченных как только для чтения в MSDN, все дело в параметрах только для чтения или ref readonly для возвращаемых значений:
Это явно не означает, что возвращаемое значение становится доступным только для чтения, потому что я возвращаю void. Мне кажется, что эффект заключается в том, что этот теперь доступен только для чтения, но мне также интересно, означает ли это, что теперь он такой же, как параметр in, такой как ExtMethod(это в MyStruct self), и в этом случае структура передается по ссылке.
В частности:
Гарантирует ли метод структуры только для чтения, что this передается ссылка, или она все равно копируется целиком (поскольку это тип значения), как структуры обычно передаются методам?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... -struct-do