首页 > 后端开发 > C++ > 如何在 C# 中修改结构列表中的值?

如何在 C# 中修改结构列表中的值?

DDD
发布: 2025-01-02 17:28:39
原创
1042 人浏览过

How Can I Modify Values Within a List of Structs in C#?

更改结构体列表中的值

使用结构体列表时,尝试修改元素时可能会遇到错误。此问题的出现是由于结构的值类型语义,它为每个值类型变量创建单独的实例。因此,当一个结构体元素被复制到另一个变量中时,它的修改不会影响原始元素。

解决这个困境的方法在于结构体​​可以公开接口。通过为所需属性创建一个带有设置访问器的接口,可以通过接口引用(指向装箱对象)修改底层结构。以下代码演示了这个概念:

public interface IMyStructModifier
{
    String Name { set; }
}

public struct MyStruct : IMyStructModifier
{
    ...
}

List<Object> obList = new List<object>();
obList.Add(new MyStruct("ABC"));
obList.Add(new MyStruct("DEF));

// Using a boxed object
MyStruct temp = (MyStruct)obList[1];
temp.Name = "Gishu";

// Using the interface
IMyStructModifier temp2 = obList[1] as IMyStructModifier;
temp2.Name = "Now Gishu";
登录后复制

此方法允许修改结构列表中的元素,尽管它可能会导致装箱。因此,在考虑类型的设计时,集合存储和修改的需求不应覆盖类和结构之间适当的语义选择。

以上是如何在 C# 中修改结构列表中的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板