经常写
BUG
的同学都知道,Type类型非常重要,因为它代表了一个对象的类型信息,通过它我们可以动态地获取和操作类型信息。熟悉它的属性和方法可以使我们更加灵活地进行
反射
。
反射
是一个非常强大的特性,它允许我们在程序运行时动态地获取类型的信息、调用对象的方法和属性、创建实例等操作,这种灵活性使我们能够在运行时对类型进行操作,这对于一些框架和库的开发来说是非常重要的,我们可以实现很多在静态编译时无法实现的功能,比如动态地加载组件、实现插件系统、生成代码等。
本文整理了C#中
Type类型的方法、返回类型、说明和备注
。建议收藏,方便大家开发时查询。
方法名
|
返回类型
|
说明
|
备注
|
BaseType
|
Type
|
获取当前类型的基类
|
如果当前类型是基类,则返回null
|
ContainsGenericParameters
|
bool
|
判断当前类型是否包含泛型参数
|
泛型参数是指类型中的未指定的类型参数,如果当前类型中包含未指定的类型参数,则返回true
|
DeclaringMethod
|
Method
|
获取定义当前泛型类型的方法
|
如果当前类型不是泛型类型,则返回null
|
DeclaringType
|
Type
|
获取定义当前嵌套类型的类型
|
如果当前类型不是嵌套类型,则返回null
|
DefaultBinder
|
Binder
|
获取默认绑定器
|
默认绑定器用于在反射操作中进行成员查找和调用
|
FullName
|
string
|
获取当前类型的完全限定名
|
完全限定名包括命名空间和类型名称,例如"System.String"
|
GenericParameterAttributes
|
GenericParameterAttributes
|
获取当前泛型类型参数的特性
|
泛型类型参数是在泛型类型或方法中定义的未指定类型的参数,特性可以用于描述泛型参数的约束和行为
|
GenericParameterPosition
|
int
|
获取当前泛型类型参数在类型参数列表中的位置
|
位置从0开始计数,对于泛型类型或方法的第一个类型参数,位置为0
|
GenericTypeArguments
|
Type[]
|
获取当前泛型类型的类型参数列表
|
如果当前类型不是泛型类型,则返回空数组
|
GUID
|
Guid
|
获取当前类型的GUID
|
GUID是一个全局唯一标识符,用于在类型库和程序集中唯一标识类型
|
HasElementType
|
bool
|
判断当前类型是否为数组、指针或引用类型
|
如果当前类型为数组、指针或引用类型,则返回true
|
IsAbstract
|
bool
|
判断当前类型是否为抽象类
|
抽象类是不能被实例化的类,需要通过继承来实现
|
IsAnsiClass
|
bool
|
判断当前类型是否为ANSI类
|
ANSI类是指采用ANSI字符集的类
|
IsArray
|
bool
|
判断当前类型是否为数组类型
|
如果当前类型为数组类型,则返回true
|
IsAutoClass
|
bool
|
判断当前类型是否为自动类
|
自动类是指由编译器自动生成的类,用于支持匿名类型和迭代器
|
IsAutoLayout
|
bool
|
判断当前类型是否为自动布局类型
|
自动布局类型是指成员在内存中按其声明的顺序进行布局
|
IsByRef
|
bool
|
判断当前类型是否为引用类型
|
引用类型是指通过引用进行传递的类型
|
IsByRefLike
|
bool
|
判断当前类型是否为类似于引用类型的类型
|
类似于引用类型的类型是指具有引用类型行为的值类型
|
IsClass
|
bool
|
判断当前类型是否为类类型
|
类类型是指可以实例化对象的类型,即引用类型
|
IsCOMObject
|
bool
|
判断当前类型是否为COM对象
|
COM对象是指遵循Component Object Model (COM)规范的对象
|
IsConstructedGenericType
|
bool
|
判断当前类型是否为构造的泛型类型
|
构造的泛型类型是指通过将泛型类型的类型参数替换为实际类型来创建的类型
|
IsContextful
|
bool
|
判断当前类型是否为上下文关联类型
|
上下文关联类型是指可以存在于特定上下文中的类型,通常用于跨上下文边界传递对象
|
IsEnum
|
bool
|
判断当前类型是否为枚举类型
|
枚举类型是指由一组命名常量值组成的类型
|
IsExplicitLayout
|
bool
|
判断当前类型是否为显式布局类型
|
显式布局类型是指通过指定字段的偏移量来进行布局的类型
|
IsFunctionPointer
|
bool
|
判断当前类型是否为函数指针类型
|
函数指针类型是指指向函数的指针
|
IsGenericMethodParameter
|
bool
|
判断当前类型是否为泛型方法参数
|
泛型方法参数是在泛型方法中定义的未指定类型的参数
|
IsGenericParameter
|
bool
|
判断当前类型是否为泛型类型参数
|
泛型类型参数是在泛型类型中定义的未指定类型的参数
|
IsGenericType
|
bool
|
判断当前类型是否为泛型类型
|
泛型类型是指具有一个或多个类型参数的类型
|
IsGenericTypeDefinition
|
bool
|
判断当前类型是否为泛型类型定义
|
泛型类型定义是指定义泛型类型的原始模板,它不包含具体的类型参数
|
IsGenericTypeParameter
|
bool
|
判断当前类型是否为泛型类型参数
|
泛型类型参数是在泛型类型中定义的未指定类型的参数
|
IsImport
|
bool
|
判断当前类型是否为导入类型
|
导入类型是指从其他程序集中导入的类型
|
IsInterface
|
bool
|
判断当前类型是否为接口类型
|
接口类型是指定义一组方法、属性和事件的类型,但没有实现它们的成员
|
IsLayoutSequential
|
bool
|
判断当前类型是否为顺序布局类型
|
顺序布局类型是指成员按照其在类型中声明的顺序进行布局
|
IsMarshalByRef
|
bool
|
判断当前类型是否为按引用封送类型
|
按引用封送类型是指通过引用进行封送传递的类型
|
IsNested
|
bool
|
判断当前类型是否为嵌套类型
|
嵌套类型是指在其他类型内部定义的类型
|
IsNestedAssembly
|
bool
|
判断当前类型是否为嵌套且可由当前程序集访问的类型
|
嵌套且可由当前程序集访问的类型是指在其他类型内部定义的,且可以由当前程序集中的其他类型访问的类型
|
IsNestedFamANDAssem
|
bool
|
判断当前类型是否为嵌套且可由同一程序集的受保护成员访问的类型
|
嵌套且可由同一程序集的受保护成员访问的类型是指在其他类型内部定义的,且可以由同一程序集中的受保护成员访问的类型
|
IsNestedFamily
|
bool
|
判断当前类型是否为嵌套且可由派生类访问的类型
|
嵌套且可由派生类访问的类型是指在其他类型内部定义的,且可以由派生类访问的类型
|
IsNestedFamORAssem
|
bool
|
判断当前类型是否为嵌套且可由同一程序集的派生类或其他程序集访问的类型
|
在其他类型内部定义的类型,可以由同一程序集中的派生类或其他程序集访问的类型。
|
IsNestedPrivate
|
bool
|
判断当前类型是否为嵌套且只能由定义它的嵌套类访问的类型
|
嵌套且只能由定义它的嵌套类访问的类型是指在其他类型内部定义的,且只能由定义它的嵌套类访问的类型
|
IsNestedPublic
|
bool
|
判断当前类型是否为嵌套且可由任意代码访问的类型
|
嵌套且可由任意代码访问的类型是指在其他类型内部定义的,且可以由任意代码访问的类型
|
IsNotPublic
|
bool
|
判断当前类型是否为非公共类型
|
非公共类型是指不可由外部程序集访问的类型
|
IsPointer
|
bool
|
判断当前类型是否为指针类型
|
指针类型是指指向其他类型的指针
|
IsPrimitive
|
bool
|
判断当前类型是否为基元类型
|
基元类型是指C#中的预定义简单类型,如整数、浮点数、布尔值和字符等
|
IsPublic
|
bool
|
判断当前类型是否为公共类型
|
公共类型是指可以由任意代码访问的类型
|
IsSealed
|
bool
|
判断当前类型是否为密封类
|
密封类是指不能被继承的类
|
IsSecurityCritical
|
bool
|
判断当前类型是否为安全关键类型
|
安全关键类型是指受到.NET安全模型保护的类型
|
IsSecurityTransparent
|
bool
|
判断当前类型是否为透明类型
|
透明类型是指没有访问安全限制的类型
|
IsSerializable
|
bool
|
判断当前类型是否可序列化
|
可序列化类型是指可以在网络或存储设备上进行序列化和反序列化的类型
|
IsSignatureType
|
bool
|
判断当前类型是否为签名类型
|
签名类型是指用于表示签名的类型,如委托类型和方法指针类型
|
IsSpecialName
|
bool
|
判断当前类型是否为特殊命名类型
|
特殊命名类型是指具有特殊命名约定的类型,如自动生成的属性访问器和事件访问器
|
IsSZArray
|
bool
|
判断当前类型是否为零维数组类型
|
零维数组类型是指只有一个元素的数组类型
|
IsTypeDefinition
|
bool
|
判断当前类型是否为类型定义
|
类型定义是指定义类型的原始模板,它可以用于创建实际的类型
|
IsUnicodeClass
|
bool
|
判断当前类型是否为Unicode类
|
Unicode类是指采用Unicode字符集的类
|
IsUnmanagedFunctionPointer
|
bool
|
判断当前类型是否为非托管函数指针类型
|
非托管函数指针类型是指指向非托管函数的指针
|
IsValueType
|
bool
|
判断当前类型是否为值类型
|
值类型是指直接包含数据的类型,而不是引用类型
|
IsVariableBoundArray
|
bool
|
判断当前类型是否为可变绑定数组类型
|
可变绑定数组类型是指可以在运行时更改大小的数组类型
|
IsVisible
|
bool
|
判断当前类型是否为可见类型
|
可见类型是指可以由其他程序集访问的类型
|
MemberType
|
MemberTypes
|
获取当前类型的成员类型
|
成员类型是指表示类型成员的枚举值,如字段、方法、属性和事件等
|
以上是C#中Type类型的方法及其说明,使用这些方法可以检查给定类型的特定属性,例如判断类型是否为类、接口、值类型、引用类型、是否为抽象类、是否为密封类、是否为公共类,是否可序列化、是否可访问等等…等等。
经常写BUG的同学都知道,Type类型非常重要,因为它代表了一个对象的类型信息,通过它我们可以动态地获取和操作类型信息。熟悉它的属性和方法可以使我们更加灵活地进行反射。反射是一个非常强大的特性,它允许我们在程序运行时动态地获取类型的信息、调用对象的方法和属性、创建实例等操作,这种灵活性使我们能够在运行时对类型进行操作,这对于一些框架和库的开发来说是非常重要的,我们可以实现很多在静态编译时无法实现的功能,比如动态地加载组件、实现插件系统、生成代码等。本文整理了C#中Type类型的方法、返回类型、说明和备注。
获取
方法
的相关信息的两种形式
反射是一种允许用户获得类信息的
C#
功能,
Type
对象映射它代表的底层对象;
在
.Net
中, 一旦获得了
Type
对象,就可以使用GetMethods()
方法
获取此
类型
支持的
方法
列表;该
方法
的两种形式:
MethodInfo [] GetMethods()
MethodInfo [] GetMethods(BindingFlags bindingflas) :它的参数
带
有一些限制 BindingFlags 是一个枚举
枚举成员 [DeclaredOnly,Instance ,Public] 枚举成员的功能使用 在编译器中使用”.”符号后自己认真观察 【相信
《
C#
全能
速查
宝典》共分为8章,分别介绍了
C#
语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、
方法
及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和
C#
高级编程,共包含562个
C#
编程中常用的属性、
方法
、类和各种技术,每一个知识点都配有具体的示例,便于读者理解。
《
C#
全能
速查
宝典》所讲的知识点按照功能和字母进行排序,读者既可以按照功能顺序查找,又可以按照字母顺序学习。
《
C#
全能
速查
宝典》不仅适合
C#
程序设计初学者,也可作为中、高级程序开发人员的参考手册。
============================================================
第1章
C#
语言基础 1
1.1 常用概念、关键字及基础类 1
1.1.1 abstract关键字——抽象 1
1.1.2 as操作符——引用
类型
转换 3
1.1.3 base关键字——从派生类中访问基类的成员 3
1.1.4 变量——存储特定
类型
的数据 4
1.1.5 Console类——控制台中的输入流、输出流和错误流 6
1.1.6 Convert类——
类型
转换 8
1.1.7 常量——值不改变的量 9
1.1.8 Dispose
方法
——释放资源 10
1.1.9 迭代器——相同
类型
的值的有序序列的一段代码 10
1.1.10 泛型——处理算法和数据结构 11
1.1.11 分部类——将一个类分成几部分 12
1.1.12 is操作符——检查变量是否为指定的
类型
14
1.1.13 lock关键字——锁定 15
1.1.14 namespace关键字——定义命名空间 15
1.1.15 new运算符——创建一个新的
类型
实例 16
1.1.16 Object
类型
——所有
类型
的基类 17
1.1.17 OOP技术——面向对象编程技术 18
1.1.18 ReadLine
方法
——从当前流中读取一行字符 20
1.1.19
type
of运算符——获得系统原型对象的
类型
21
1.1.20 using关键字——引入命名空间 22
1.1.21 WriteLine
方法
——写入流 23
1.2 数学
方法
类——Math 25
1.2.1 Abs
方法
——返回指定数字的绝对值 25
1.2.2 Acos
方法
——返回余弦值为指定数字的角度 26
1.2.3 Asin
方法
——返回正弦值为指定数字的角度 26
1.2.4 Atan
方法
——返回正切值为指定数字的角度 27
1.2.5 Pow
方法
——返回指定数字的指定次幂 27
1.2.6 Round
方法
——将小数值舍入到指定的精度 28
1.3 流程控制语句 29
1.3.1 break语句——跳出循环 29
1.3.2 case语句——比较表达式以确定结果 30
1.3.3 continue语句——继续执行下一个循环 31
1.3.4 do…while语句——循环语句 31
1.3.5 for语句——循环语句 32
1.3.6 foreach语句——枚举一个集合的元素 33
1.3.7 goto语句——跳转到标签 34
1.3.8 if…else语句——条件判断语句 36
1.3.9 return语句——返回 38
1.3.10 switch case语句——条件判断语句 39
1.3.11 throw语句——显式引发异常 40
1.3.12 try…catch…finally语句——捕捉异常 42
1.3.13 while语句——循环语句 43
1.4 字符串处理 44
1.4.1 AddDays
方法
——添加天数 44
1.4.2 AddString
方法
——添加文本字符串 45
1.4.3 Compare
方法
——比较两个字符串 46
1.4.4 CompareTo
方法
——比较两个字符串对象 47
1.4.5 DATEADD函数——在指定日期上加一段时间 48
1.4.6 DateDiff
方法
——获取日期时间的间隔数 48
1.4.7 DateTime结构——表示时间上的一刻 50
1.4.8 DAY函数——返回日期部分的整数 51
1.4.9 DayOfWeek属性——获取星期几 52
1.4.10 Equals
方法
——比较两个字符串对象 53
1.4.11 First函数——返回查询结果的第一个记录 55
1.4.12 FirstDayOfWeek属性——获取或设置一周中的第一天 56
1.4.13 Format
方法
——格式化字符串 56
1.4.14 GETDATE函数——返回当前系统日期和时间 58
1.4.15 GetDayOfMonth
方法
——返回几号 59
1.4.16 GetDayOfWeek
方法
——返回星期几 59
1.4.17 GetDayOfYear
方法
——返回第几天 60
1.4.18 GetDaysInMonth
方法
——返回指定月份中的天数 60
1.4.19 GetDaysInYear
方法
——返回指定年份中的天数 61
1.4.20 GetMonth
方法
——返回指定日期中的月份 61
1.4.21 GetMonthsInYear
方法
——返回指定年份的月数 62
1.4.22 GetText
方法
——检索文本数据 63
1.4.23 GetYear
方法
——返回指定日期中的年份 64
1.4.24 IndexOf
方法
——确定指定字符在字符串中的索引 65
1.4.25 IsLeapYear
方法
——判断年份是否为闰年 67
1.4.26 IsMatch
方法
——搜索正则表达式匹配项 67
1.4.27 IsUpper
方法
——判断是否大写 68
1.4.28 Join
方法
——串联字符串 69
1.4.29 LastIndexOf
方法
——确定字符在字符串中最后索引 70
1.4.30 Matches
方法
——检查字符串是否有重复的词出现 71
1.4.31 MONTH函数——返回指定日期中月部分的整数 73
1.4.32 PadLeft
方法
——在左边用空格填充 73
1.4.33 PadRight
方法
——在右边用空格填充 74
1.4.34 Random类——伪随机数生成器 75
1.4.35 Regex类——正则表达式 76
1.4.36 Split
方法
——分割字符串 78
1.4.37 String类——字符串 79
1.4.38 StringBuilder类——可变字符串 82
1.4.39 Substring
方法
——截取字符串 83
1.4.40 TimeSpan对象——表示时间间隔或持续时间 84
1.4.41 ToInt32
方法
——转换为32位有符号整数 85
1.4.42 ToLongDateString
方法
——转换为长日期字符串 86
1.4.43 ToLongTimeString
方法
——转换为长时间字符串 87
1.4.44 ToLower
方法
——转换为小写 87
1.4.45 ToShortDateString
方法
——转换为短日期字符串 88
1.4.46 ToShortTimeString
方法
——转换为短时间字符串 88
1.4.47 ToString
方法
——转换为字符串 89
1.4.48 ToUpper
方法
——转换为大写 90
1.4.49 Trim
方法
——移除所有空白字符 91
1.4.50 TrimEnd
方法
——从尾部移除匹配项 92
1.4.51 TrimStart
方法
——从开始移除匹配项 92
1.4.52 YEAR函数——返回指定日期的年份的整数 93
1.5 数组与集合 93
1.5.1 Add
方法
——添加项 93
1.5.2 ArrayList类——集合 95
1.5.3 AsEnumerable
方法
——转换为IEnumerable
类型
97
1.5.4 Clear
方法
——清空内容 98
1.5.5 Contains
方法
——确定是否包含某项 99
1.5.6 ContainsKey
方法
——确定哈希表是否包含特定键 100
1.5.7 ContainsText
方法
——确定剪贴板中是否存在数据 101
1.5.8 ContainsValue
方法
——确定哈希表是否包含特定值 101
1.5.9 Count属性——获取数目 102
1.5.10 GetEnumerator
方法
——循环访问对象 103
1.5.11 GetEnvironmentVariables
方法
——检索环境变量 104
1.5.12 Hashtable类——哈希表 106
1.5.13 Insert
方法
——插入项 110
1.5.14 Item属性——获取或设置指定索引处的元素 111
1.5.15 Length属性——获取长度 112
1.5.16 Next
方法
——返回一个指定范围内的随机数 113
1.5.17 Queue类——队列 115
1.5.18 Remove
方法
——移除指定项 116
1.5.19 RemoveAt
方法
——移除指定索引处的项 118
1.5.20 Replace
方法
——替换文件或字符串 119
1.5.21 Reverse
方法
——反转数组元素 120
1.5.22 Sort
方法
——数组排序 121
1.5.23 Stack类——堆栈 123
第2章 Windows窗体及常用控件 126
2.1 Form窗体 126
2.1.1 AcceptButton属性——设置接受按钮 126
2.1.2 Activate事件——当激活窗体时发生 126
2.1.3 Appllication类——提供管理应用程序的静态
方法
126
2.1.4 CancelButton属性——设置取消按钮 128
2.1.5 Computer类——提供操作计算机组件的属性 129
2.1.6 ComputerInfo类——获取计算机信息 130
2.1.7 Control类——定义控件基类 131
2.1.8 Environment类——提供当前环境和平台的信息 134
2.1.9 Form窗体——可视化界面 136
2.1.10 FormClosed事件——关闭窗体后事件 139
2.1.11 FormClosing事件——关闭窗体前事件 139
2.1.12 Icon属性——设置图标 139
2.1.13 IsMdiContainer属性——设置父窗体 140
2.1.14 LayoutMdi
方法
——排列子窗体 141
2.1.15 Load事件——窗体加载事件 141
2.1.16 MaximizeBox属性——是否显示最大化按钮 142
2.1.17 Maximum属性——设置数字显示框的最大值 142
2.1.18 MDI窗体——多文档界面 143
2.1.19 MdiChildren属性——获取子窗体的数组 146
2.1.20 MdiParent属性——设置父窗体 147
2.1.21 MinimizeBox属性——是否显示最小化按钮 147
2.1.22 Minimum属性——数字显示框的最小值 148
2.1.23 Opacity属性——设置窗体的透明度级别 148
2.1.24 Owner属性——设置窗体所有者 149
2.1.25 StartPosition属性——设置窗体起始位置 150
2.1.26 StartupPath 属性——获取可执行文件路径 150
2.1.27 TopMost属性——窗体是否应显示为最顶层窗体 151
2.1.28 WindowState属性——窗体的窗口状态 151
2.2 文本类控件 152
2.2.1 AllowEdit属性——是否可以编辑列表项 152
2.2.2 AppendText
方法
——追加文本 152
2.2.3 BeginEdit
方法
——将单元格置于编辑模式下 153
2.2.4 Button控件——按钮控件 153
2.2.5 CancelEdit属性——取消更改 155
2.2.6 CanPaste
方法
——是否可以粘贴数据 155
2.2.7 CanRedo属性——是否有可以重新应用的操作 156
2.2.8 CanSelect属性——是否可以选中控件 157
2.2.9 CanUndo属性——能否撤销上一个操作 157
2.2.10 Cut
方法
——将选定内容移动到“剪贴板”中 158
2.2.11 Find
方法
——搜索指定的项目 158
2.2.12 FindString
方法
——搜索文本 160
2.2.13 Label控件——标签控件 161
2.2.14 LabelEdit属性——允许用户编辑控件数据 163
2.2.15 LinkLabel控件——以超链接形式显示文本 164
2.2.16 MaskedTextBox控件——使用掩码区分用户输入 166
2.2.17 Multiline属性——是否为多行输入数据 169
2.2.18 PasswordChar属性——取代用户输入而显示的字符 170
2.2.19 Redo
方法
——重新应用控件中上次撤销的操作 171
2.2.20 RichTextBox控件——有格式文本控件 171
2.2.21 Select
方法
——激活控件 173
2.2.22 SelectAll
方法
——选定所有文本 176
2.2.23 Selected属性——是否选定 176
2.2.24 SelectedCells属性——用户选定的单元格集合 177
2.2.25 SelectedColumns属性——用户选定的列集合 178
2.2.26 SelectedRows属性——用户选定的行集合 179
2.2.27 SelectionBackColor属性——文本在选中时的颜色 180
2.2.28 SelectionColor属性——插入点的文本颜色 180
2.2.29 SelectionEnd属性——设置选定日期范围的结束日期 181
2.2.30 SelectionFont属性——选定文本或插入点的字体 182
2.2.31 SelectionIndent属性——所选内容开始行的缩进距离 183
2.2.32 SelectionLength属性——控件中选定的字符数 184
2.2.33 SelectionRange 属性——设置选定的日期范围 185
2.2.34 SelectionStart属性——选择的起始位置的字符索引 185
2.2.35 TextBox控件——输入或显示文本 186
2.2.36 TextChanged事件——Text属性值更改时发生 187
2.3 选择类控件 188
2.3.1 CheckBox控件——复选框控件 188
2.3.2 CheckBoxes属性——是否显示复选框 190
2.3.3 Checked属性——复选框是否处于选中状态 190
2.3.4 CheckedChanged事件——Checked属性更改时发生 191
2.3.5 CheckedListBox控件——复选框列表控件 191
2.3.6 CheckState属性——设置CheckBox控件的状态 193
2.3.7 ComboBox控件——下拉组合框控件 194
2.3.8 DomainUpDown控件——上下选择控件 195
2.3.9 DropDownStyle属性——指定组合框样式的值 197
2.3.10 GetItemCheckState
方法
——当前项的复选状态的值 198
2.3.11 GetItemText
方法
——指定项的文本表示形式 199
2.3.12 Index属性——从零开始的索引 200
2.3.13 Items属性——数组列表对象中的项的集合 200
2.3.14 ListBox控件——列表控件 201
2.3.15 ListView控件——显示
带
图标的项列表 205
2.3.16 NumericUpDown控件——数值选择控件 208
2.3.17 RadioButton控件——单选按钮 210
2.3.18 SelectedIndex属性——获取选择项的索引 212
2.3.19 SelectedIndices属性——表示当前选中的项 213
2.3.20 SelectedItem属性——当前选中的项 214
2.3.21 SelectedItems属性——选定项的集合 215
2.3.22 SelectedText属性——选定文本 216
2.4 容器类控件 217
2.4.1 FlatStyle属性——设置控件的平面样式外观 217
2.4.2 FlowDirection属性——指示FlowLayoutPanel控件的流向 217
2.4.3 FlowLayoutPanel控件——水平或垂直排列内容 218
2.4.4 GroupBox控件——分组控件 219
2.4.5 Panel控件——容器控件 220
2.4.6 TabControl控件——选项卡控件 222
2.4.7 TabIndex属性——控件的Tab键顺序 224
2.4.8 TabPages属性——选项卡页的集合 224
第3章 Windows高级控件 226
3.1 日期时间类控件 226
3.1.1 CalendarFont属性——日历的字体样式 226
3.1.2 CalendarForeColor属性——日历的前景色 226
3.1.3 DateTimePicker控件——日期和日历的组合 226
3.1.4 MaxDate属性——最大日期和时间 228
3.1.5 MinDate属性——最小日期和时间 228
3.1.6 MonthCalendar控件——以网格形式显示日历 229
3.1.7 SetDate
方法
——将日期设置为当前选定的日期 231
3.1.8 ShowToday属性——是否显示当前日期 232
3.2 对话框、菜单、工具栏及状态栏控件 232
3.2.1 ColorDialog控件——颜色对话框 232
3.2.2 ContextMenuStrip控件——右键快捷菜单 233
3.2.3 ExpandAll
方法
——展开所有树节点 233
3.2.4 Filter属性——设置筛选器字符串 234
3.2.5 FolderBrowserDialog控件——浏览文件夹对话框 234
3.2.6 Font属性——设置字体 235
3.2.7 FontDialog控件——字体对话框 235
3.2.8 InitialDirectory属性——文件对话框显示的初始目录 237
3.2.9 MenuStrip控件——菜单控件 238
3.2.10 Nodes属性——树节点集合 241
3.2.11 OpenFileDialog控件——打开文件对话框 241
3.2.12 RestoreDirectory属性——是否还原当前目录 244
3.2.13 RootFolder属性——设置浏览的根文件夹 245
3.2.14 SaveFileDialog组件——保存文件对话框 246
3.2.15 SelectedNode属性——获取选定的树节点 248
3.2.16 SelectedPath属性——用户选定的路径 249
3.2.17 ShowDialog
方法
——打开模式对话框 249
3.2.18 ToolStrip控件——工具栏控件 251
3.2.19 TreeNode类——树节点 252
3.2.20 TreeView控件——树控件 254
3.3 数据绑定类控件 256
3.3.1 BindingNavigator控件——导航和操作数据 256
3.3.2 Cell对象——表示Word文档中的单元格 258
3.3.3 CellClick事件——单元格的任何部分被单击时发生 259
3.3.4 CellEnter事件——控件接收到输入焦点时发生 260
3.3.5 CellMouseClick事件——鼠标单击单元格时发生 261
3.3.6 CellLeave事件——单元格失去输入焦点时发生 261
3.3.7 Cells属性——Bookmark控件中的表单元格 261
3.3.8 ColumnCount属性——DataGridView控件显示的列数 262
3.3.9 Columns属性——控件中所有列的集合 262
3.3.10 ColumnWidth属性——ListBox中列的宽度 263
3.3.11 CurrentCell属性——设置当前处于活动状态的单元格 263
3.3.12 CurrentRow属性——包含当前单元格的行 263
3.3.13 DataGridView控件——数据控件 264
3.3.14 FullRowSelect属性——是否选择其所有子项 268
3.3.15 GetCellCount
方法
——获取满足筛选器的单元格数目 269
3.3.16 GetColumn
方法
——指定子控件的列位置 270
3.3.17 NewRow
方法
——添加一条新记录 270
3.3.18 RowCount
方法
——DataGridView中显示的行数 271
3.3.19 Rows属性——DataGridView控件中的所有行 272
3.4 打印类控件 273
3.4.1 CrystalReportViewer控件——水晶报表查看控件 273
3.4.2 Document属性——设置要预览的文档 280
3.4.3 PageSetupDialog组件——配置页面的对话框 281
3.4.4 Print
方法
——打印当前页面 283
3.4.5 PrintDialog组件——打印对话框 283
3.4.6 PrintDocument组件——设置打印的文档 286
3.4.7 PrinterSettings属性——打印机设置 291
3.4.8 PrintPage事件——当需要为当前页打印的输出时发生 292
3.4.9 PrintPreviewControl组件——按文档打印时的外观显示Print Document组件 292
3.4.10 PrintPreviewDialog组件——显示PrintDocument组件在打印时的外观 295
3.4.11 PrinterSettings类——用来指定有关文档打印方式的信息 297
3.4.12 Zoom属性——指示页面的显示大小 300
3.5 其他常用组件 300
3.5.1 BackgroundWorker组件——在主线程的另一线程上异步执行耗时的操作 300
3.5.2 ErrorProvider控件——检查并显示错误信息 302
3.5.3 EventLog组件——连接本地和远程计算机的事件日志 303
3.5.4 HelpProvider组件——将帮助文件与Windows应用程序相关联 306
3.5.5 HScrollBar控件——一个标准Windows水平滚动条 309
3.5.6 Image属性——显示在控件上的图像 311
3.5.7 ImageAlign属性——在控件中显示的图像的对齐方式 312
3.5.8 ImageFormat类——指定图像的格式 312
3.5.9 ImageList组件——用于存储图像 314
3.5.10 ImageList属性——在控件中显示的图像的ImageList 316
3.5.11 Interval属性——设置Timer控件执行的间隔 317
3.5.12 NotifyIcon控件——设置程序的系统托盘图标 317
3.5.13 PerformStep
方法
——按照Step属性的数量增加进度栏的当前位置 319
3.5.14 PictrueBox控件——用于显示指定的图像 320
3.5.15 Play
方法
——播放.wav文件 323
3.5.16 ProgressBar控件——进度条 323
3.5.17 SetError
方法
——设置错误信息 326
3.5.18 SetShowHelp
方法
——是否显示帮助信息 327
3.5.19 SetToolTip
方法
——设置提示文本 328
3.5.20 Step属性——增加进度条的当前位置时所根据的数量 328
3.5.21 Stop
方法
——停止加载网页 329
3.5.22 Tick事件——计时器处于启用状态时发生 330
3.5.23 Timer组件——定期引发事件的组件 330
3.5.24 ToolTip控件——显示提示信息 332
3.5.25 ToolTipIcon属性——提示文本旁显示的图标
类型
333
3.5.26 ToolTipText属性——ToolTip显示的文本 334
3.5.27 ToolTipTitle属性——工具提示窗口的标题 334
3.5.28 TrackBar控件——标准的Windows跟踪条 335
3.5.29 Url属性——引用服务说明的URL 337
3.5.30 VscrollBar控件——标准的Windows垂直滚动条 337
3.5.31 WebBrowser控件——在窗体中显示网页 339
3.5.32 Windows Media Player控件——播放常见的音频文件 343
第4章 控件公共属性、
方法
及事件 347
4.1 控件公共属性 347
4.1.1 BackColor属性——设置控件的背景色 347
4.1.2 BackgroudColor属性——设置控件背景色 347
4.1.3 BackgroudImage属性——设置控件背景图像 347
4.1.4 Border属性——控件边框 348
4.1.5 BorderStyle属性——控件的边框样式 349
4.1.6 Bottom属性——控件下边缘与其容器的工作区上边缘之间的距离 349
4.1.7 CanFocus属性——控件是否可以接收焦点 350
4.1.8 Capture属性——控件是否已捕获鼠标 350
4.1.9 Color属性——设置用户选定的颜色 350
4.1.10 Dock属性——控件在窗体中的布局样式 351
4.1.11 Enabled属性——控件是否可用 352
4.1.12 ForeColor属性——设置控件的前景色 352
4.1.13 Handle属性——获取控件绑定到的窗口句柄 352
4.1.14 Height属性——设置控件的高度 353
4.1.15 KeyChar属性——设置与按下的键对应的字符 354
4.1.16 KeyValue属性——获取KeyDown或KeyUp事件的键盘值 355
4.1.17 Lines属性——设置多行配置中的文本行 355
4.1.18 Location属性——控件的左上角相对于其容器的左上角的坐标 356
4.1.19 Name属性——控件或实例的名称 356
4.1.20 Parent属性——设置控件的父容器或获取指定子目录的父目录 357
4.1.21 Position属性——设置坐标 358
4.1.22 ReadOnly属性——是否只读 359
4.1.23 Right属性——控件右边缘与其容器的工作区左边缘之间的距离 359
4.1.24 RightToLeft属性——控件的文本从右向左读取 360
4.1.25 ScrollBars属性——滚动条的可见性和位置 360
4.1.26 SizeMode属性——指示如何显示图像 361
4.1.27 Tag属性——窗体或控件的标识 362
4.1.28 Text属性——与控件关联的文本 362
4.1.29 TextAlign 属性——控件上文本的对齐方式 363
4.1.30 Top属性——控件上边缘与其容器的工作区上边缘之间的距离 364
4.1.31 Value属性——辅助性对象的值 364
4.1.32 View属性——项在控件中的显示方式 365
4.1.33 Visible属性——控件是否可见 366
4.1.34 Width属性——控件的宽度 366
4.2 控件公共
方法
367
4.2.1 BringToFront
方法
——将控件
带
到Z顺序的前面 367
4.2.2 Focus
方法
——为控件设置输入焦点 367
4.2.3 GetClipboardContent
方法
——检索选定单元格内容的格式化值 368
4.2.4 GetParent
方法
——检索指定路径的父目录 368
4.2.5 Hide
方法
——隐藏窗体 369
4.2.6 Load
方法
——加载XML文档 369
4.2.7 LoadFile
方法
——将文件加载到RichTextBox控件中 371
4.2.8 Navigate
方法
——打开指定的URL地址 372
4.2.9 Refresh
方法
——重新加载当前的网页 373
4.2.10 SaveAs
方法
——用新名称或新格式保存文档 373
4.2.11 SaveFile
方法
——将内容保存到文件中 374
4.2.12 Show
方法
——显示光标或者打开新窗体 375
4.2.13 UpButton
方法
——按照指定数值递增 376
4.3 控件公共事件 377
4.3.1 Click事件——单击控件时触发该事件 377
4.3.2 Enter事件——光标进入控件时发生 378
4.3.3 KeyDown事件——控件有焦点按下键时发生 378
4.3.4 KeyPress事件——控件有焦点按下键时发生 380
4.3.5 KeyUp事件——控件有焦点释放键时发生 381
4.3.6 Leave事件——输入焦点离开控件时发生 381
4.3.7 MouseClick事件——用户单击控件时发生 382
4.3.8 Navigated事件——加载新文档时发生 383
4.3.9 Paint事件——重绘或更新控件时发生 383
第5章 数据库开发 385
5.1 SQL语言基础 385
5.1.1 AVG聚合函数——返回组中值的平均值 385
5.1.2 CAST函数——数据
类型
显式转换 385
5.1.3 COUNT函数——返回组中的项的数量 386
5.1.4 Last函数——返回查询结果的最后一个记录 386
5.1.5 MAX函数——返回表达式中的最大值 388
5.1.6 MIN函数——返回表达式中的最小值 388
5.1.7 newid函数——创建uniqueidentifier
类型
的惟一值 389
5.1.8 SUM函数——返回表达式中所有值的和 389
5.1.9 UPDATE语句——更改表中的现有数据 390
5.2 ADO
.NET
技术 392
5.2.1 Command对象——对数据源执行增、删、改、查操作 392
5.2.2 CommandText属性——获取设置SQL语句或存储过程 393
5.2.3 CommandTimeout属性——获取或设置错误等待时间 393
5.2.4 Command
Type
属性——获取或设置如何解释CommandText属性 394
5.2.5 Connection对象——数据库连接对象 394
5.2.6 ConnectionState枚举——数据库连接状态 395
5.2.7 DataAdapter类——数据库桥接器 396
5.2.8 DataMember属性——获取或设置数据源列表或表名称 398
5.2.9 DataReader类——只读数据集 398
5.2.10 DataSet类——数据集 400
5.2.11 DataSource属性——获取或设置数据源 402
5.2.12 ExecuteNonQuery
方法
——执行SQL语句并返回受影响的行数 402
5.2.13 ExecuteReader
方法
——执行SQL语句并返回DataReader对象 403
5.2.14 ExecuteScalar
方法
——执行SQL语句并返回结果集中第1行的第1列 404
5.2.15 Fill
方法
——填充数据集 405
5.2.16 Merge
方法
——合并数据集 407
5.2.17 Parameters属性——获取SqlParameterCollection 409
5.2.18 ReadXml
方法
——将XML架构和数据读入数据集 410
5.2.19 SelectCommand属性——获取或设置选择记录命令 411
5.2.20 SQL注入式攻击——利用设计上的漏洞攻击SQL 412
5.2.21 SqlCommand类——SQL执行命令 413
5.2.22 SqlConnection类——SQL数据库连接对象 415
5.2.23 SqlDataAdapter类——SQL数据库桥接器 416
5.2.24 SqlDataReader类——SQL只读数据集 418
5.2.25 Tables属性——获取包含在数据集中的表的集合 421
5.2.26 Update
方法
——使控件重绘工作区内的无效区域 422
5.2.27 UpdateCommand属性——获取或设置更新记录命令 423
5.2.28 WriteXml
方法
——将数据集中数据写入到XML中 423
5.3 LINQ技术 424
5.3.1 Lambda表达式——匿名函数 424
5.3.2 LINQ技术——语言集成查询 426
5.3.3 LinqToDataSet技术——LINQ操作数据集 427
5.3.4 LinqToObjects技术——LINQ操作数组和集合 429
5.3.5 LinqToSql技术——LINQ操作SQL数据库 431
5.3.6 LinqToXml技术——LINQ操作XML文件 436
5.3.7 var关键字——根据初始化语句推断变量
类型
439
第6章 文件、数据流与注册表 441
6.1 文件与I/O数据流 441
6.1.1 ASCII码——键盘的一种表示方式 441
6.1.2 ASCIIEncoding类——ASCII字符编码的操作类 442
6.1.3 Attributes属性——获取和设置文件的属性 443
6.1.4 BinaryReader类——将特定的数据读作二进制值 445
6.1.5 BinaryWriter类——将二进制值写入到流中 447
6.1.6 CanRead属性——判断当前流是否支持读写 448
6.1.7 Close
方法
——释放所有关联的资源 449
6.1.8 Copy
方法
——文件的复制 450
6.1.9 CopyFile
方法
——将文件复制到新的位置 451
6.1.10 CopyTo
方法
——将指定的字符串复制到字符数组中 452
6.1.11 Create
方法
——创建文件 455
6.1.12 CreateDirectory
方法
——创建指定路径中的所有目录 456
6.1.13 CreateText
方法
——创建或打开文本文件 456
6.1.14 CreationTime属性——获取或设置文件的创建时间 457
6.1.15 CryptoStream类——将数据流连接到加密转换的流 457
6.1.16 Delete
方法
——删除文件 461
6.1.17 Directory类——对文件夹进行操作的类 463
6.1.18 DirectoryEntry类——封装节点或对象 464
6.1.19 DirectoryInfo类——对文件夹进行操作的类 466
6.1.20 DirectoryName属性——获取路径 468
6.1.21 DirectorySearcher组件——执行查找 468
6.1.22 DriveInfo类——驱动器的信息访问 469
6.1.23 Encoding属性——获取编码方式 470
6.1.24 Exists
方法
——判断文件是否存在 471
6.1.25 Exists属性——判断文件是否存在 472
6.1.26 Extension属性——获取文件扩展名 473
6.1.27 File类——对文件进行操作的类 473
6.1.28 FileAttributes枚举——提供文件和目录的属性 475
6.1.29 FileInfo类——文件的操作类 476
6.1.30 FileName属性——获取或设置文件的名称 478
6.1.31 FileStream类——对文件流操作的类 478
6.1.32 Flush
方法
——清除流的缓冲区 480
6.1.33 GetBytes
方法
——将字符串编码设为字节序列 481
6.1.34 GetDirectories
方法
——获取子目录的名称 482
6.1.35 GetExtension
方法
——获取路径字符串的扩展名 485
6.1.36 GetFiles
方法
——获取目录中的文件名称 486
6.1.37 GetFileSystemEntries
方法
——获取目录中的所有名称 487
6.1.38 GetFileSystemInfos
方法
——获取所有文件的信息 489
6.1.39 GetStream
方法
——返回用于发送和接收的数据 491
6.1.40 GetString
方法
——将字节解码成字符串 491
6.1.41 HasRows属性——指示 OleDbDataReader是否有数据 493
6.1.42 MD5CryptoServiceProvider类——操作MD5的类 493
6.1.43 MemoryStream类——创建其支持存储区为内存的流 495
6.1.44 Move
方法
——文件的移动 497
6.1.45 MoveNext
方法
——移动到下一个字符 497
6.1.46 MoveTo
方法
——文件的移动 498
6.1.47 NetworkStream类——网络访问的基础数据流 500
6.1.48 Open
方法
——打开文件 502
6.1.49 OpenFile
方法
——以只读方式打开文件 503
6.1.50 OpenText
方法
——打开UTF-8编码文本文件 504
6.1.51 Path属性——监视的目录的路径 505
6.1.52 Peek
方法
——返回下一个可用的字符 506
6.1.53 Read
方法
——读取数据流 507
6.1.54 ReadBytes
方法
——将指定的字节读入字节数组 508
6.1.55 ReadToEnd
方法
——从流的当前位置读到末尾 509
6.1.56 Stream类——对数据流进行操作的类 510
6.1.57 StreamReader类——数据流的读取类 512
6.1.58 StreamWriter类——数据流的写入类 513
6.1.59 TextReader类——读取连续字符的读取器 515
6.1.60 TextWriter类——编写一个有序字符系列的编写器 516
6.1.61 Write
方法
——将流写入到文件中 517
6.2 注册表技术 521
6.2.1 CreateSubKey
方法
——创建或打开子项 521
6.2.2 GetValue
方法
——获取注册表项中的值 522
6.2.3 GetValueNames
方法
——所有值名称的字符串数组 523
6.2.4 GetSubKeyNames
方法
——所有子项名称字符串数组 525
6.2.5 OpenSubKey
方法
——以只读方式检索子项 525
6.2.6 Registry类——注册表操作类 528
6.2.7 RegistryKey类——表示Windows注册表中的项级节点 529
6.2.8 SetValue
方法
——设置注册表项的指定名称/值对 531
第7章 GDI+绘图技术 532
7.1 GDI+绘图基础 532
7.1.1 Bitmap类——图像对象 532
7.1.2 Cursor类——绘制光标指针图像 533
7.1.3 GDI+——图形图像的绘制 535
7.1.4 Graphics类——绘图类 536
7.1.5 GraphicsPath类——一系列相互连接的直线和曲线 540
7.1.6 Icon类——图标的操作类 542
7.1.7 Image类——图像的操作类 543
7.1.8 LinearGradientBrush类——线性渐变封装Brush 545
7.1.9 Region类——由矩形和路径构成的图形形状的内部 547
7.1.10 SolidBrush类——定义单色画笔 548
7.2 常用绘图
方法
549
7.2.1 Draw
方法
——绘制光标 549
7.2.2 DrawArc
方法
——绘制圆弧 550
7.2.3 DrawBezier
方法
——绘制贝塞尔样条 551
7.2.4 DrawEllipse
方法
——绘制椭圆 553
7.2.5 DrawImage
方法
——绘制Image图像 555
7.2.6 DrawLine
方法
——绘制直线 556
7.2.7 DrawPath
方法
——绘制GraphicsPath图形路径 558
7.2.8 DrawPie
方法
——绘制扇形 558
7.2.9 DrawPolygon
方法
——绘制多边形 560
7.2.10 DrawRectangle
方法
——绘制矩形 561
7.2.11 DrawString
方法
——绘制文本字符串 562
7.3 常用填充图像
方法
565
7.3.1 FillEllipse
方法
——填充椭圆 565
7.3.2 FillPath
方法
——填充GraphicsPath的内部 566
7.3.3 FillPie
方法
——填充扇形 567
7.3.4 FillPolygon
方法
——填充多边形 568
7.3.5 FillRectangle
方法
——填充矩形框 570
7.3.6 FillRegion
方法
——填充一个区域 572
7.4 其他常用
方法
572
7.4.1 Clone
方法
——创建Bitmap对象的某个部分的副本 572
7.4.2 CreateGraphics
方法
——创建Graphics对象 574
7.4.3 FromArgb
方法
——从ARGB值创建Color结构 574
7.4.4 FromFile
方法
——从指定的文件创建Image 577
7.4.5 FromImage
方法
——从Image创建新的Graphics对象 578
7.4.6 FromStream
方法
——数据流创建Image 578
7.4.7 GetPixel
方法
——获取图像中的像素颜色 580
7.4.8 GetThumbnailImage
方法
——Image的缩略图 581
7.4.9 Save
方法
——将图片以文件的形式进行复制 583
7.4.10 SetPixel
方法
——设置图像中的像素颜色 583
7.4.11 Transform
方法
——对路径的数据点进行变换 584
第8章
C#
高级编程 586
8.1 网络编程技术 586
8.1.1 Accept
方法
——为新建连接创建新的Socket对象 586
8.1.2 AcceptSocket
方法
——接收挂起的连接请求 586
8.1.3 BeginConnect
方法
——开始远程主机连接的异步请求 587
8.1.4 Dns类——从Internet域名系统检索特定主机的信息 588
8.1.5 GetHostAddresses
方法
——返回主机的IP地址 589
8.1.6 GetHostByAddress
方法
——创建IPHostEntry实例 590
8.1.7 GetHostByName
方法
——获取指定DNS主机名的信息 591
8.1.8 GetHostName
方法
——获取本地计算机的主机名 592
8.1.9 IPEndPoint类——将网络端点表示为IP地址和端口号 592
8.1.10 IPHostEntry类——为主机地址信息提供容器类 594
8.1.11 Listen
方法
——将Socket置于侦听状态 596
8.1.12 MachineName属性——读取或写入事件的计算机名称 596
8.1.13 MailMessage类——邮件的操作类 597
8.1.14 Net send命令——用net send命令进行发送 598
8.1.15 Net use命令——实现映射网络驱动器 599
8.1.16 Ping类——网络访问远程计算机的操作类 601
8.1.17 POP3协议——POP邮件的操作类 603
8.1.18 Receive
方法
——由远程主机发送的UDP数据报 608
8.1.19 Send
方法
——将数据发送到连接的Socket 609
8.1.20 SerialPort类——控制串行端口文件资源 610
8.1.21 SMTP协议——进行邮件的传输 612
8.1.22 SmtpClient类——将电子邮件发送到SMTP服务器 614
8.1.23 Socket类——网络通信的操作类 616
8.1.24 TcpClient类——为TCP网络服务提供客户端连接 618
8.1.25 TcpListener类——从TCP网络客户端侦听连接 619
8.1.26 UdpClient类——用户数据报(UDP)网络服务 620
8.1.27 WebClient类——URI标识的资源发送和接收 623
8.1.28 WebRequest类——访问Internet数据 625
8.1.29 WebResponse类——协议特定的响应类 629
8.2 多线程编程 630
8.2.1 Abort
方法
——终止线程 630
8.2.2 BeginInvoke
方法
——线程上异步执行委托 631
8.2.3 EndInvoke
方法
——异步操作的返回值 632
8.2.4 Join
方法
——确保线程已终止 633
8.2.5 Kill
方法
——强制关闭进程 633
8.2.6 Process类——对正在计算机上运行的进程的访问 635
8.2.7 Sleep
方法
——线程挂起 640
8.2.8 Start
方法
——启动进程 640
8.2.9 Thread类——创建并控制线程的类 642
8.2.10 ThreadState属性——获取当前线程的状态 645
8.3 WMI技术——系统管理 646
8.3.1 MainWindowTitle属性——获取进程的主窗口标题 646
8.3.2 ManagementClass类——公共信息模型管理类 647
8.3.3 ManagementObject类——表示WMI实例 648
8.3.4 ManagementObjectSearcher类——查询检索管理对象 650
8.3.5 ManagementScope类——管理操作的范围 651
8.3.6 Microsoft.Win32命名空间——操作注册表类 652
8.3.7 WndProc
方法
——处理Windows消息 654
8.4 其他高级技术 655
8.4.1 Children属性——获取节点的子项 655
8.4.2 COM+服务——为类的实例提供服务 655
8.4.3 DirectShow技术——流媒体处理的一个开发包 656
8.4.4 DLL组件——动态链接库 663
8.4.5 MVC开发模式——模型视图控制器 664
8.4.6 VFW技术——视频应用程序提供的软件工具包 666
8.4.7 XML——定义其他标识语言的元标识语言 668
8.4.8 XmlReader类——XML读取器 670
8.4.9 XmlWriter类——XML编写器 673
附录——字母索引 676
public void InsertFooter(string footer)
if (ActiveWindow.ActivePane.View.
Type
== WdView
Type
.wdNormalView ||
ActiveWindow.ActivePane.View.
Type
== WdView
Type
.wdOutlineView)
ActiveWindow.ActivePane.View.
Type
A程序不断的将日志信息追加到日志文件的末尾,B程序不断的从日志文件中读取最后一行(使用File.ReadLines(string path)
方法
)。
在B程序读取的同时A程序执行写入,报出如下错误信息:
System.IO.IOException: 文件“xxx”正由另一进程使用,因此该进程无法访问此文件。
解决
方法
因为需要按行读取数据,所以采用File.ReadLines(string path)
方法
,但该
方法
在读取时会锁住文件不让A程序继续写入。若不想禁止对文件的写入,应使用如下参数创建
这里写自定义目录标题
C#
使用证书与服务端建立SSL/TLS通信,验证失败问题描述框架环境分析原因及解决方案
C#
使用证书与服务端建立SSL/TLS通信,验证失败
遇到一个问题挺特殊的,记录一下。
C#
做客户端使用TcpClient+SslStream建立SSL/TLS通信时,在调用SslStream.AuthenticateAsClient
方法
验证证书时发生异常。
异常信息:
调用 SSPI 失败,请参见内部异常。
接收到的消息异常,或格式不正确。
A call to SSPI failed,
除了上述两种
方法
,
C#
还提供了一些常用的数据
类型
转换
方法
:
1. Parse()
方法
:对于string
类型
是互相兼容的数据
类型
,将string
类型
转换为任意基本
类型
。基本语法:基本数据
类型
.Parse(需转换的字符串
类型
的值)。例如:
```csharp
string str = "123";
int num = int.Parse(str); // 将string
类型
的str转换为int
类型
2. Convert()
方法
:在不超过转换后数据
类型
范围的前提下,可将任意数据
类型
转换成任意数据
类型
,用法十分灵活。基本语法:数据
类型
变量名 = Convert.To数据
类型
(变量名)。例如:
```csharp
string str = "123";
int num = Convert.ToInt32(str); // 将string
类型
的str转换为int
类型