- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
<分区>
我有一个函数可以确定记录值的字段大小(以字节为单位)。如果它是一个字符串,我使用 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# 的新手,所以请随意拆解我的代码。
谢谢
我有这样的类型定义: type Blah = { fields: { value: string }[] } 我们在这里看到字段是一堆数组条目。我想通过 $PropertyT
我有这样的类型定义: type Blah = { fields: { value: string }[] } 我们在这里看到字段是一堆数组条目。我想通过 $PropertyT
我怎样才能让它工作? switch(property.PropertyType){ case typeof(Boolean): //doStuff break;
这个问题在这里已经有了答案: C#: Getting size of a value-type variable at runtime? (8 个答案) 关闭 9 年前。 我有一个函数可以确定记录值
我有以下用 EF 生成的类“schakeling”,表示数据库表“schakeling”。在数据库中,'id' 是主键,'plc_id' 是外键。 public partial class schak
我正在尝试通过反序列化 json 来创建属性的新实例字符串。调用JsonConvert.DeserializeObject(string)当我明确说明 T 的类型时有效: var foo = Json
我有一个通用函数,可以使用反射从 DataRow 创建对象。我正在使用此函数从 Access 数据库导入表: private static T CreateItemFromRow(DataRow ro
我想使用 PropertyType 返回的类型来创建类型化函数。我发现这个相似 using type returned by Type.GetType() in c#但这提到了如何创建一个列表,但没有
我有如下类: public class SampleClassToTest { public static Fake SomeMethod(string parameter) {
我的问题是:怎样才能使 PropertyInfo.GetValue(object, null); 转换为 PropertyType 的返回值,而不是返回对象。 我试过 Convert.ChangeTy
我正在使用这两个库: Unity-SerializableDictionary: https://github.com/starikcetin/Unity-SerializableDictionary
我想使用反射获取属性类型。这是我的代码 var properties = type.GetProperties(); foreach (var propertyInfo in properties)
我正在遍历对象并初始化该对象的所有属性。首先,对象的类型即类被放置在我的同一个项目中并且工作正常。现在,我将该类移到另一个项目中,但仍然使用 AssemblyName.Namespace.Class
我只需要显示名称在必填字段列表中的属性。 我正在尝试做这样的事情,但是 p.PropertyType.Name == x 不正确: Pricing pricing = new Pricing(); T
我只需要显示名称在必填字段列表中的属性。 我正在尝试做这样的事情,但是 p.PropertyType.Name == x 不正确: Pricing pricing = new Pricing(); T
我是一名优秀的程序员,十分优秀!