最近在接连的面试一些候选者,我发现很多候选者对于基础还是一知半解
很多人知道struct是值类型,class是引用类型
但是我补一句,如果一个struct里面有个class是值类型还是引用类型
很多面试者就答不出来了,其实这是个很简单的问题
using System;
public class MyClass
{
public int Value;
}
public struct MyStruct
{
public int Number;
public MyClass ReferenceTypeField;
}
class Program
{
static void Main()
{
PrintFieldTypeInfo();
}
static void PrintFieldTypeInfo()
{
// 获取 MyStruct 类型
Type myStructType = typeof(MyStruct);
// 获取 MyStruct 的所有字段
var fields = myStructType.GetFields();
// 遍历字段并打印其名称、类型和是否是值类型
foreach (var field in fields)
{
bool isValueType = field.FieldType.IsValueType;
Console.WriteLine($"Field: {field.Name}, Type: {field.FieldType}, IsValueType: {isValueType}");
}
}
}