gpt4 book ai didi

c# - 使用反射从 PropertyType 获取字节数

转载 作者:太空宇宙 更新时间:2023-11-03 20:12:26 26 4
gpt4 key购买 nike

<分区>

我有一个函数可以确定记录值的字段大小(以字节为单位)。如果它是一个字符串,我使用 Length 返回字节数。如果它不是字符串,我将调用另一种方法,该方法使用开关分配字节数。

这是我的:

private int getRecordFieldSize(PropertyInfo recordField,DataRecord dataRecord)
{

if (recordField.PropertyType.ToString() == "System.String")
{
return recordField.GetValue(dataRecord,null).ToString().Length;
}
else
{
int bytesOfPropertyType = getBytesBasedOnPropertyType(recordField.PropertyType.ToString());
return bytesOfPropertyType;
}
}
private int GetBytesBasedOnPropertyType(string propType)
{

switch(propType)
{
case "System.Boolean":
return 1;
case "System.Byte":
return 1;
case "System.SByte":
return 1;
case "System.Char":
return 1;
case "System.Decimal":
return 16;
case "System.Double":
return 8;
case "System.Single":
return 4;
case "System.Int32":
return 4;
case "System.UInt32 ":
return 4;
case "System.Int64":
return 8;
case "System.UInt64":
return 8;
case "System.Int16":
return 2;
case "System.UInt16":
return 2;
default:
Console.WriteLine("\nERROR: Unhandled type in GetBytesBasedOnPropertyType." +
"\n\t-->String causing error: {0}", propType);
return -1;
}

}

我的问题:有没有办法避免使用 switch 语句来分配字节?

我觉得应该有某种方法可以使用反射获取字节数,但我在 MSDN 上找不到任何东西。

我是 C# 的新手,所以请随意拆解我的代码。

谢谢

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com