如果两个不同结构的大小完全相同,那么它们在执行时有何不同?应该有一些关于它们不应该是什么类型的信息?
在堆栈中,我可以想象这些信息可以在不分配额外内存的情况下存储(在某些地方,如标题或其他内容)。怎么有In Heap,当struct 不装箱时,它是否为其类型信息分配了额外的内存?
例如static HttpClient _client = new HttpClient();
public static async Task<Feeds> getJson()
{
using (var response = await _client.GetAsync("https://thingspeak.com/channels/301726/field/1.json"))
{
if (response.IsSuccessStatusCode) {
var json = await response.Content.ReadAsStringAsync();
JObject obj = JObject.Parse(json);
Feeds feed = null;
foreach (var feedObj in obj["feeds"])
{
feed = JsonConvert.DeserializeObject<Feeds>(feedObj.ToString());
double feild1 = feed.field1;
}
return feed;
}
}
return null;
}
与AnInt
或其他类似结构的区别。
int
答案 0 :(得分:3)
请记住,值类型没有继承。这意味着值类型的变量足以编码类型信息。您知道自己正在处理AnInt
,因为您通过AnInt
字段,属性或本地变量访问它。
反过来,这意味着在编译期间,编译器确切地知道调用该变量的方法等,并且(再次,因为没有继承)没有要考虑的虚拟调度。