类中的结构是否作为值传递?

lej*_*jon 5 .net c#

我有:

结构

struct Data { int a; int b; }
Run Code Online (Sandbox Code Playgroud)

包含结构的类

class Packet {
    Data DataStruct;
}
Run Code Online (Sandbox Code Playgroud)

当我现在实例化我的类时,我假设结构存在于堆上.如果我现在做的事情

SomeClass.Process(new Packet().DataStruct);
SomeClass.Process(new Packet().DataStruct.a);
Run Code Online (Sandbox Code Playgroud)

它会作为价值传递吗?

如果没有,是否有任何理由不将结构化为类?

Nei*_*ght 3

structs 是值类型,因此它将作为 传递valueClassesreference类型。

value除非指定outref指定,否则所有内容都将被传递。