C#中typeof(string)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中typeof(string)相关的知识,希望对你有一定的参考价值。
private void InitReport()
string str = "select autoPeriod from Setting";
DataTable dts = SQLServer.SQLInquiry(str);
string strAutoPeriodId = "-1"; // 默认权限
if (dts.Rows.Count == 1)
strAutoPeriodId = dts.Rows[0][0].ToString().Trim();
string strSql = "select * from Period";
DataTable dt = SQLServer.SQLInquiry(strSql);
dt.Columns.Add("strWeek1", typeof(string));
dt.Columns.Add("strWeek2", typeof(string));
dt.Columns.Add("strWeek3", typeof(string));
dt.Columns.Add("strWeek4", typeof(string));
dt.Columns.Add("strWeek5", typeof(string));
dt.Columns.Add("strWeek6", typeof(string));
dt.Columns.Add("strWeek7", typeof(string));
dt.Columns.Add("IsAuto", typeof(string));
// 处理星期, true为√ false为×
int nRow = dt.Rows.Count;
for (int i = 0; i < nRow; i++)
DataRow dtr = dt.Rows[i];
for (int j = 0; j < 7; j++)
bool bIsCheck = Convert.ToBoolean(dtr[4 + j]);
if (bIsCheck)
dtr[13 + j] = "√";
else
dtr[13 + j] = "×";
if (dtr["periodId"].ToString().Trim() == strAutoPeriodId)
dtr["IsAuto"] = "★";
rptPeriodList.DataSource = dt;
rptPeriodList.DataBind();
能解释13是怎么来的吗,4是第5列属性
表中属性依次为periodId,name,datetimeStart,datetimeEnd,Monday,Tuesday,Wednesday,
Thursday,Friday,Saturday,Sunday,timeBegin,timeEnd
0:periodId ,1:name,2:datetimeStart,3: datetimeEnd, 4:Monday, 5:Tuesday, 6:Wednesday,
7:Thursday, 8:Friday, 9: Saturday, 10:Sunday, 11:timeBegin, 12:timeEnd
dt.Columns.Add("strWeek1", typeof(string)); 这句话的意思是向Period里添加新的列,列名为strWeek1,类型是string。所以加完以后多出来的列如下:
13:strWeek1,14:strWeek2, .... , 19: strWeek7, 20:IsAuto
现在知道13怎么出来的了吧? 参考技术A 楼上好详细……
C# Type
System.Type 类对于反射起着核心的作用。但它是一个抽象的基类,Type有与每种数据类型对应的派生类,我们使用这个派生类的对象的方法、字段、属性来查找有关该类型的所有信息。
获得给定类型的TYPE引用有3个方式:
①使用 C# typeof 运算符:
Type t = typeof(string);
②使用对象GetType()方法:
string s = "grayworm";
Type t = s.GetType();
③还可以调用Type类的静态方法GetType():
Type t = Type.GetType("System.String");
上面这三类代码都是获取string类型的Type(第三种方式很少使用),在取出string类型的Type引用t后,我们就可以通过t来探测string类型的结构了。
string n = "grayworm";
Type t = n.GetType();
foreach (MemberInfo mi in t.GetMembers())
{
Console.WriteLine("{0}/t{1}",mi.MemberType,mi.Name);
}
Type类的属性:
Name 数据类型名
FullName 数据类型的完全限定名(包括命名空间名)
Namespace 定义数据类型的命名空间名
IsAbstract 指示该类型是否是抽象类型
IsArray 指示该类型是否是数组
IsClass 指示该类型是否是类
IsEnum 指示该类型是否是枚举
IsInterface 指示该类型是否是接口
IsPublic 指示该类型是否是公有的
IsSealed 指示该类型是否是密封类
IsValueType 指示该类型是否是值类型
Type类的方法:
GetConstructor(), GetConstructors():返回ConstructorInfo类型,用于取得该类的构造函数的信息
GetEvent(), GetEvents():返回EventInfo类型,用于取得该类的事件的信息
GetField(), GetFields():返回FieldInfo类型,用于取得该类的字段(成员变量)的信息
GetInterface(), GetInterfaces():返回InterfaceInfo类型,用于取得该类实现的接口的信息
GetMember(), GetMembers():返回MemberInfo类型,用于取得该类的所有成员的信息
GetMethod(), GetMethods():返回MethodInfo类型,用于取得该类的方法的信息
GetProperty(), GetProperties():返回PropertyInfo类型,用于取得该类的属性的信息
可以调用这些成员,其方式是调用Type的InvokeMember()方法,或者调用MethodInfo, PropertyInfo和其他类的Invoke()方法。
本文出自 “Better_Power_Wisdom” 博客,请务必保留此出处http://aonaufly.blog.51cto.com/3554853/1858980
以上是关于C#中typeof(string)的主要内容,如果未能解决你的问题,请参考以下文章