绘画做动作的网站,手机如何制作ppt,随州seo推广,网站的主题与风格说明从C# 8开始#xff0c;我们可以在struct的成员上使用readonly修饰符。 为struct的成员添加readonly修饰符就表示告诉编译器和开发者该成员不可以修改struct的状态。 看下面这个例子#xff1a; 这里的ToString()方法不会修改Point这个struct的状态#xff0c;所以我们可以在… 从C# 8开始我们可以在struct的成员上使用readonly修饰符。 为struct的成员添加readonly修饰符就表示告诉编译器和开发者该成员不可以修改struct的状态。 看下面这个例子 这里的ToString()方法不会修改Point这个struct的状态所以我们可以在该方法上添加readonly修饰符来表示其只读 但是这里会出现警告因为 ToString 访问了未标记为 readonly 的 Distance 属性。也就是需要创建防御性副本时编译器会发出警告。 由于Distance属性不会修改状态所以可以在它前边加上readonly修饰符以修复此警告 请注意readonly 修饰符对于只读属性是必须要添加的。 编译器会假设 get 访问器可以修改状态所以必须显式声明 readonly。 但是自动实现的属性则是一个例外编译器将所有自动实现的 Getter 视为 readonly因此此处无需向 X 和 Y 属性添加 readonly 修饰符。 如果我在该struct里面再添加一个修改状态的方法 由于该方法确实修改了struct的状态所以如果在该方法上再加上readonly修饰符的话编译器就会报错。 而如果我把readonly修饰符去掉的话那么就不会报错了: