随笔分类 -  .Net的基础概念

对于一些.Net中的基本概念的学习笔记
摘要:C#判断字符串的显示宽度 起因: 公司有一个使用项目使用HTML转换为PDF,其中有一个表格,表格的最后一列中的单元格,其字符串超长后会被丢弃,而不是换行到下一行展示(HtmlToPdf渲染引擎导致的,没办法更改) 解决方案: 根据字符串长度手动添加<br/>换行 var source = "ABC 阅读全文
posted @ 2023-11-08 10:07 吴俊城 阅读(1163) 评论(9) 推荐(8)
摘要:特性 特性是一种将自定义信息添加到代码元素(程序集、类型、成员、返回值、参数和泛型类型参数)的扩展机制 特性在没有破坏类型封装的前提下,可以加点额外的信息和行为 定义特性 特性是一个继承Attribute类的类,在其中可以定义属性、字段、方法、构造函数等,与正常的类并无两样,但是通常我们会以Attr 阅读全文
posted @ 2020-09-23 12:03 吴俊城 阅读(313) 评论(0) 推荐(0)
摘要:反射的常用API 加载程序集 Assembly assembly = Assembly.Load("程序集名称"); // 从前目录加载程序集,提供程序集名称,无后缀 Assembly assembly = Assembly.LoadFile("程序集完整路径"); // 加载指定路径的程序集,需要 阅读全文
posted @ 2020-09-23 11:49 吴俊城 阅读(420) 评论(0) 推荐(0)
摘要:反射的基本用法 反射提供了一种动态的方法,使程序能够灵活的扩展、配置,在各种框架中广泛运用 反射的核心优点是将原本写死在代码中方法功能抽取出来,使具体的执行仅由传递的字符串参数决定,以此做到无需修改程序本身,只通过传递字符串就能有不同的执行动作,至于字符串则可以通过各种形式提供,常见的行为有通过配置 阅读全文
posted @ 2020-09-23 11:46 吴俊城 阅读(351) 评论(0) 推荐(0)
摘要:C#的常见集合接口提供的功能 这里的功能都是泛型版本的常见功能,列出来,也许后面用得上吧,没有放非泛型版本,因为觉得用得不多,也就没有整理 IEnumerable<T> ICollection<T> IReadOnlyList<T> IList<T> 元素枚举 √ √ √ √ 元素枚举 Count 阅读全文
posted @ 2020-09-19 21:52 吴俊城 阅读(144) 评论(0) 推荐(0)
摘要:C#深度复制和浅度复制 复制一个值变量很简单,新建一个变量然后将原来的变量赋值过去就行,但是复制一个引用变量这种方法是不行的,如果不明白为什么可以先看看这篇解释 引用类型变量和值类型变量在赋值时的不同 如果要复制一个引用类型的变量,比如说类,需要在类定义中继承ICloneable接口,并实现Clon 阅读全文
posted @ 2020-09-10 19:13 吴俊城 阅读(1171) 评论(0) 推荐(0)
摘要:引用类型和值类型变量在赋值时的不同 先讲变量在内存中的存储位置:值类型存储在栈中,引用类型存储在堆中,堆栈这里不明白也不影响,有个基本的概念就行了 先谈复制 int a = 5; int b = a; 这是值类型,存储在栈中,这个例子中变量b就复制了a,下面看引用类型 Test t1 = new T 阅读全文
posted @ 2020-09-10 19:10 吴俊城 阅读(465) 评论(0) 推荐(0)
摘要:Lambda表达式 Lambada表达式是一种可以替代委托实例的匿名方法。编译器会立即将Lambda表达式转换为一下两种形式之一: 一个委托实例 一个类型为Expression的表达式树(这个后面将) 匿名方法 上面说Lambada是一种匿名方法,那么就要先了解一下什么是匿名方法 匿名方法是C#2. 阅读全文
posted @ 2020-08-07 12:13 吴俊城 阅读(496) 评论(0) 推荐(0)
摘要:谈一谈C#的事件 C#中事件基于委托,要理解事件要先理解委托,如果觉得自己关于委托不是很了解可以看看我前面写委托的文章 事件基于委托,是一种功能受限的委托,为委托提供了一种发布/订阅机制 使用委托时,一般会出现两种角色:广播者(发布者)和订阅者,这是一个非常常见的模型 依然是用一个非常典型的例子来说 阅读全文
posted @ 2020-08-03 19:09 吴俊城 阅读(181) 评论(0) 推荐(0)
摘要:说说委托是个什么东西,以及委托有什么用 定义:委托是一种知道如何调用方法的对象 // 定义一个委托,这个委托定义了通过此委托调用的方法必须是接收一个字符串参数,返回int类型 delegate int OneDelegate(string s); // 委托是一个对象,所以在使用委托时也需要创建实例 阅读全文
posted @ 2020-07-28 16:49 吴俊城 阅读(940) 评论(0) 推荐(0)
摘要:对象: 对象就是OOP应用程序的一个组成部件。这个组成部件封装了部分应用程序,这部分程序可以是一个过程、一些数据或一些更抽象的实体 字段 字段是用来定义对象中包含的特征或行为,如:定义一个狗类,则可以设置以下字段: int 毛的长度; string 毛的颜色; 属性 属性包含get方法和set方法 阅读全文
posted @ 2020-07-28 10:44 吴俊城 阅读(782) 评论(0) 推荐(0)
摘要:C#中的字段与属性的区别及属性的作用 先上代码 public class Employee { //字段 private string name; //属性 public string Name { get { return name; } set { name = value; } } } 这段代 阅读全文
posted @ 2020-07-28 10:43 吴俊城 阅读(2342) 评论(2) 推荐(3)
摘要:C#的foreach遍历循环和隐式类型变量 foreach遍历循环 foreach (<baseType> <name> in <array>>) { //can use <name> for each element } //foreach循环与python的for循环类似 #python的for 阅读全文
posted @ 2020-07-28 10:41 吴俊城 阅读(300) 评论(0) 推荐(0)
摘要:0x01定义一个委托,相当于定义一个可以存储方法的特殊变量类型 下面我们看具体的代码,通过代码更好理解 这行代码就是声明一个委托,其中 是关键字,表示声明一个委托, 是要存储的方法的返回类型, 是声明的委托类型名字,结合最开始的那句话就是自定义的类书变量类型名, 则是要存储的方法的返回类型 这样一个 阅读全文
posted @ 2020-04-14 18:59 吴俊城 阅读(409) 评论(0) 推荐(0)
摘要:C 中事件流程的简单理解 C 中事件基于委托,要理解事件要先理解委托,但是现在我还没想好怎么写委托,如果不懂委托可以先找找委托的文章 事件基于委托,为委托提供了一种发布/订阅机制 一上来就是这句话,很容易就懵了,我们先不管这句话,直接看例子 首先我们定义了一个类 继承自 类,定义了一个构造函数和一个 阅读全文
posted @ 2020-04-09 08:48 吴俊城 阅读(442) 评论(0) 推荐(0)
摘要:@ "TOC" 字段 字段的声明与声明变量类似,可以添加访问修饰符,通常情况下字段设置为私有的,然后定义属性对字段的读写进行限制 一般的命名规范约定,私有字段使用下划线前缀、小驼峰命名 属性 属性拥有两个访问器(get和set),用于控制读取和写入,通常和字段配套使用,用来对字段进行读写限制 方法 阅读全文
posted @ 2020-03-28 12:11 吴俊城 阅读(367) 评论(0) 推荐(0)
摘要:扩展方法是静态方法,是类的一部分,但没有在类的源代码中,就像一个补丁 首先创建一个静态类,然后创建一个静态方法,重点是静态方法的参数 这里定义了一个扩展方法x,注意x的参数列表(this char s),this和char定义了这是一个char的扩展方法,s是char类型的形参 扩展方法x的作用是将 阅读全文
posted @ 2020-03-18 21:29 吴俊城 阅读(102) 评论(0) 推荐(0)
摘要:C 类中的字段、属性和方法 刚开始学C ,对于类中的字段、属性和方法很难分清,写下这份笔记,帮助理解 字段 :与类相关的变量 声明方法与声明变量类似,可在前面添加访问修饰符、static关键字等; 属性 :与字段类似,结尾不加分号,有一对大括号,其中包含get、set访问器的相关代码,即含有get、 阅读全文
posted @ 2019-12-19 21:15 吴俊城 阅读(1350) 评论(0) 推荐(0)