如何修改属性是结构的字段?如何修改属性中的字段
例如:
using System;
using System.Collections.Generic;
namespace ConsoleApplication1
{
struct vector
{
public vector(int theX, int theY)
{
x = theX;
y = theY;
}
public int x;
public int y;
}
class SomeClass
{
public vector myVector { get; set; }
public SomeClass()
{
myVector = new vector(10, 20);
}
}
class Program
{
static void Main(string[] args)
{
SomeClass me = new SomeClass();
me.myVector.x = 200; //Error
Console.Read();
}
}
}
如果载体是一个类,那么我将能够对其进行修改。
所以我的问题是:我如何修改它,如果它是一个结构?
到目前为止,我的解决办法是我的电流矢量设置为一个新的矢量
例如(如果我只是想修改x值):
me.myVector = new vector(200,me.myVector.y);
您不应该修改一个结构并将其保留为不可变的。看到这个为什么:http://stackoverflow.com/questions/3751911/why-are-c-sharp-structs-immutable – 2013-04-20 23:14:57