C# 类(CLASS) 技术教程文章

【C#公共帮助类】 Log4net 帮助类【代码】【图】

首先,我们要在Common类库中引用log4net.dllExtLogImpl.csusing System; using System.Collections.Generic; using System.Linq; using System.Text; using log4net.Core;namespace log4net.Ext {publicclass ExtLogImpl : LogImpl, IExtLog{///<summary>/// The fully qualified name of this declaring type not the type of any subclass.///</summary>privatereadonlystatic Type ThisDeclaringType = typeof(ExtLogImpl);publ...

C# DataTable数据类型判断【代码】

当我们从数据中获取到数据,一般会使用 DataTable 接收,然后会遍历每行数据。由于从数据库中读取的数据可能为空,比如我们的编译代码如下:foreach (DataRow datarow in dataTable.Rows) {// 如果列中有一列的名称为name,当我们需要判断是否为空时,该怎么写datarow["name"] }直接写为datarow["name"] == null由于 datarow["name"] 会返回一个对象 object,而这个对象总是不为空的,所有这样判断永远不会成立。经过调试可以看到 ...

C#基础(七)——静态类与非静态类、静态成员的区别

静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,它防止在类的内部声明任何实例字段或方法。 静态类是自C# 2.0才引入的,C# 1.0不支持静态类声明。程序员必须声明一个私有构造器。私有构造器禁止开发者在类的范围之外实例化类的实例。使用私有构造器的效...

linq to sql用partial扩展属性,创建一个部分类(用于多表连接)【代码】【图】

1.在窗体中创建dataGridView显示表:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace WindowsFormsApplication1 {publicpartialclass Form1 : Form{public Form1(){InitializeComponent();}privatevoid Form1_Load(object sender, EventArgs e){contestDataContext _contest...

[深入学习C#]输入输出安全性——可变类型形參列表的变化安全性【代码】

可变类型形參列表(variant-type-parameter-lists)  可变类型形參列表(variant-type-parameter-lists )仅仅能在接口和托付类型上出现。它与普通的type-parameter-lists的差异在于,它的每一个类型形參前面能够加上变化性批注:in和out。假设前面的变化性批注为out,则该类型形參成为协变类型形參;假设变化批注为in。则该类型形參成为逆变类型形參;假设不存在变化批注,则称该类型形參为固定类型形參。 比如:interface C<out x ...

用C#创建一个混合型类

.net 4.0添加了dynamic关键字。通过声明dynamic变量,我们可以在C#这个静态语言中使用一下动态语言的特性。微软添加dynamic关键字,主要是为了使在C#中对COM编程更加简化。对于我这个2003年才开始学编程的人来说COM就和汇编一样,只有听说过的份。那么dynamic还有什么其他的用途呢?最近有点时间研究了一下,感觉很好玩,很Cool。作为学习成果,下面是一个通过IDynamicMetaObjectProvider实现的一个可以混合动态Property和静态Prop...

C# 类名获取,反射泛型对象获取值

string InsertString<T>(T t)   {     var type = typeof(T); //反射对象     var A = type.GetProperties(); //获取对象属性     var insertString = "insert into " + t.GetType().Name + " values ("; //t.GetType().Name 获取类名     foreach (var b in A) {       insertString += "@" + b.Name...

C# 引用类型作为值参数和引用参数【代码】

引用类型作为值类型传递,形参和实参其实是两个指针,只不过指向的是同一块内存。新new一个对象是,它们两的联系就被切断了,指向了不同的内存块。引用类型作为引用参数,此时的形参其实是实参的一个别名,它们两个其实是一个指针,新new一个对象是,指向的还是同一内存块,因为它们本身就是同一个指针。两种情况的最后指向是不一样的。以下情况是, 在方法内创建一个新对象并赋值给形参。引用类型作为值参数using System;namespace...

MVC c# 没有为类型“System.Nullable`1[System.Int32]”和“System.Int32”定义二进制运算符 Equal。

Entity framework 运用过程中,条件查询时会出现 MVC c# 没有为类型“System.Nullable`1[System.Int32]”和“System.Int32”定义二进制运算符 Equal。 处理方法:int类型进行连接是, 非空和非零的前提下才进行Equal,所以尝试转换成int成功就可以处理掉这个异常。 int UserId ; if (int.TryParse(Request["UserId"], out UserId)) { where.Equal("UserId", UserId); ...

C#与C++之间类型的对应

?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169...

(原创)c#学习笔记10--定义类成员01--成员定义06--自动属性【代码】

10.1.6 自动属性属性是访问时象状态的首选方式,因为它们禁止外部代码实现对象内部的数据存储机制。属性还对内部数据的访问方式施加了更多的控制,本章代码在多处体现了这一点。但是,一般以非常标准的方式定义属性,即通过一个公共属性来直接访问一个私有成员。其代码非常类似于上一节的代码,这是VS重构工具自动生成的。  重构功能肯定加快了键入速度,C#还为此提供了另一种方式:自动属性。利用自动属性,可以用简化的语法声...

C# 可空类型

可以为null的类型赋其基础类型正常范围的值和null值。例如:Nullable<Int32>可以赋值为-2147483618到2147483618之间任意值和null。(int?=null 或int?=9)在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 .例子说明:using System; namespace CalculatorApplication {class NullablesAtShow{static void Main(string[] args){int? num1...

7.C#知识点:抽象类和接口浅谈【代码】【图】

知识点目录==========>传送门 首先介绍什么是抽象类?抽象类用关键字abstract修饰的类就是叫抽象类,抽象类天生的作用就是被继承的,所以不能实例化,只能被继承。而且 abstract 关键字不能和sealed一起使用,因为sealed是不允许继承,这样就是抽象类的意义冲突了。publicabstractclass Test{}现在我们知道知道了抽象类长的什么样了,下面要知道抽象类是干嘛用的。顾名思义把对象共有的东西抽象出来。比如猫和和狗鸟等都有眼睛,都有嘴...

c#特性类 Attribute

AttributeFYILink:Attribute在.net编程中的应用(一)Attribute在.net编程中的应用(二)Attribute在.net编程中的应用(三)Attribute在.net编程中的应用(四)Attribute在.net编程中的应用(五)Attribute在.net编程中的应用(六)HQL: Hibernate 大全中的大全 原文:http://www.cnblogs.com/sanyejun/p/7803376.html

C#中的Dictionary字典类常用方法介绍【代码】

1using System.Collections.Generic;//引用命名空间//Dictionary可以理解为散列集合 2publicclass DictionaryTest3{4publicstaticvoid Main()5 {6//1.初始化 7 Dictionary<string, string> dicA = new Dictionary<string, string>();8//2.添加元素 key,value->学号,姓名 9 dicA.Add("A01", "张三"); 10 dicA.Add("A02", "李四"); 11 dicA.Add("B03", "王五...

c# 开发工具类【代码】

stemp0 快速开发,需要使用很多小函数,方便快捷,保留适合自己的方法,会使开发效率提升cache 缓存辅助类using System; using System.Collections.Generic; using System.Linq; using System.Web;namespace mofa.commom {//cache帮助类publicclass Cache{///<summary>/// 设定绝对的过期时间(超过多少天后过期,单位是天)///</summary>///<param name="CacheKey"></param>///<param name="objObject"></param>///<param name="s...

基于DirectX的半球形天空类的C++和C#实现【代码】

目前,天空绘制主要有三种方法:矩形天空、天空盒和球形天空。  (1)矩形天空使用一个与地面垂直或呈一定夹角的矩形表示天空,用接近于天空的颜色或云彩纹理贴于矩形上。这种方法简单易行,但需要不断调整视角或观察点来改变场景可视域,还会对运行效率造成一定影响。  (2)天空盒是构建一个包含场景的方盒来表示天空,然后在方盒四周和顶部贴上云彩纹理。但这种方法当视角对准两个面的边界时,能够明显看到交接痕迹。  (3)球形...

C#原始类型扩展方法—this参数修饰符

扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。 扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。它们的第一个参数指定该方法作用于哪个类型,并且该参数以 th...

Csharp多态的实现(抽象类)【代码】

1.什么是抽象类抽象类是虚拟的类,不能创建对象,用abstract修饰,在子类中用override进行重写抽象类中可以存放抽象方法,属性,也可以存放非抽象方法,属性(这个在下面的代码可以看出来的)非抽象类中只能存放非抽象的方法(这个可以在下面的代码中可以看出类)如果子类也是抽象类,那么父类中所有的抽象方法,属性不必全部实现; 如果子类不是抽象类,那么父类中所有的抽象方法,属性必须全部实现(如果不实现会报错,这个也可以观察出来)2.下面来...

C#中,子类构造函数调用父类父类构造函数的正确方式【图】

正确调用的方式是: 原文:https://www.cnblogs.com/lz19980926/p/9013091.html