dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不...
转载
2014-09-26 16:39:00
54阅读
2评论
dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不...
转载
2015-09-28 17:50:00
94阅读
2评论
C#语言和之前学习VB 一样,在代码中也有方法的使用,那么方式是如何应用的呢?下面看下介绍。语法:[访问修饰符] static 返回值 方法名([参数列表])---------说明:[ ]中的内同可以写,也可以省略{方法体}例如:public static void show() --因为有void,所以此方法没有返回值、没有参数的方法,如果方法的前面加上static,此方法就为静态方法。计算数组
原创
2022-12-23 10:38:28
45阅读
接触 C# 一年。整体上是一个很完好的语言,可是某些细节特征还是不够完美。这里记下我如今对它将来的一些期望。
更强大的泛型约束
与 C++ 的模板相似,C# 的泛型使得编写适用于多种类型的代码更加简洁。假设没有泛型。我们可能须要使用 object 并运行类型转换,或者针对每一种类型写大量雷同的代码。在泛型类型约束上。C# 一如既往的严格。可是因为泛型约束还不完好,有时不得不写一些反复的代码。比方以
转载
2015-08-17 21:17:00
69阅读
2评论
c#中的扩展方法
扩展声明
扩展方法它可以让我们在不修改原始类的情况下,为其添加新的方法。
并不是任何方法都能作为扩展方法使用 , 必须具有以下特征:
它必须在一个非嵌套的、非泛型的静态类中(所以必须是一个静态方法)
至少要有一个参数;
第一个参数必须是要扩展的类型,使用this关键字进行标记
第一个参数不能有其他任何修饰符(比如out或ref);
第一个参数的类型不能是指针类型。
注意事项
原创
2023-05-27 10:33:23
344阅读
当我们需要从一个字典中取得值时,需要先定义一个out的变量,再用TryGetValue方法传入键去判断是否取得字典的值:可以定义一个字典的扩展类把两句规整为一句:using System.Collections.Generic;/// <summary>/// 对字典类的扩展/// </summary>public static class D...
原创
2022-01-25 14:42:19
6224阅读
扩展方法是C#3.0引入的新特性,使用它,可以在不修改某一类的代码的情况下,实现该类方法的扩展。 为一个类添加扩展方法,需要三个要素: 1.扩展方法所在的类为静态类 2.扩展方法本身要为静态方法 3.扩展方法的第一个参数要用关键字this,指向要扩展的类 下面请看一个实例: //静态类 public
原创
2022-01-10 15:35:47
231阅读
当我们需要从一个字典中取得值时,需要先定义一个out的变量,再用TryGetValue方法传入键去判断是否取得字典的值:可以定义一个字典的扩展类把两句规整为一句:using System.Collections.Generic;/// <summary>/// 对字典类的扩展/// </summary>public static class D...
原创
2021-07-14 13:59:50
188阅读
C# Main方法是 C# 控制台应用程序或窗口应用程序的入口点。应用程序启动时,C# Main 方法是第一个调用的方法。C# 中的Main()方法首字母必须大写,如果首字母小写就会产生编译错误,编译失败。C# Main方法有以下几条准则:Main()方法在C#里非常特殊,它是编译器规定的所有可执行程序的入口点。由于其特殊性,对Main()方法有以下几条准则:1.Main()方法必须封装在类或结构里来提供可执行程序的入口点。C#采用了完全的面向对象的编程方式,但C#中不可以有像C++那样的全局函数。2.Main()方法必须为静态方法(static),这允许C#不必创建实例对象即可运行程序。3.
转载
2012-06-25 12:47:00
238阅读
2评论
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public static class Spread
{
/// <summary>
/// 检索指定class的所有HtmlDocument对象
/// &
转载
2017-06-05 09:09:00
111阅读
2评论
dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不
转载
2018-09-29 11:27:00
67阅读
2评论
如果某个类管理了系统中唯一的某种资源,那么我们只能创建该类的一个实例,此时用到singleton设计模式(后面为了简化将省略“设计模式”四个字)就比较合适了。然而,如果不注意实现方法,就很有可能会让我们碰到一些莫名其妙的错误。图1是经过简化所得到的一个实现错误的例子。
main.c 00001: #include <iostream&g
原创
2012-01-05 17:27:39
10000+阅读
点赞
4评论
C#遍历Queue的正确姿势首先,using System.Collections.Generic;然后,Queue<string> vList = new Queue<string>();string str = "";foreach (var item in vList){ str += item+" ";}...
原创
2022-11-08 19:02:29
123阅读
ninputer在关于“值类型的Finalize不会被调用”中(http://blog.joycode.com/lijianzhong/archive/2005/01/13/42991.aspx#FeedBack)评论到“VB对Finalize管的可松呢,可以直接重写、直接调用、允许不调用父类的Finalize,或者多次调用父类的Finalize等等…… 完全不像C#”。
其实C#的F
转载
2006-10-19 10:13:00
87阅读
2评论
继承中的构造方法:一个子类对象在实例化之前,需要先实例化从父类继承到的部分。实例化
原创
2022-11-22 10:18:11
305阅读
“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。扩展方法使你能够向现有类型“添...
转载
2015-03-31 19:38:00
79阅读
2评论
“重写”父类方法就是改动它的实现方式或者说在子类中对它进行又一次编写。
子类继承父类的方法,在调用对象继承方法的时候,调用和运行的是父类的实现。可是,有时候须要对子类中的继承方法有不同的实现方式。 比如,如果动物存在“叫”的方法,从中继承
转载
2019-05-07 16:55:00
200阅读
2评论
在 C# 中,函数是一段代码块,用于执行特定的任务或操作。函数也被称为方法(method),它们是面向对象编程(OOP)的基模块化,提高代码的可读性、可维护性和重用性。
原创
2023-07-06 10:22:17
154阅读
ninputer在关于“值类型的Finalize不会被调用”中(http://blog.joycode.com/lijianzhong/archive/2005/01/13/42991.aspx#FeedBack)评论到“VB对Finalize管的可松呢,可以直接重写、直接调用、允许不调用父类的Fi
原创
2023-06-06 07:17:21
133阅读
最近有人问到 ref 关键字的正确用法,下面我们来举例说明。其实要更好的理解 ref 关键字,结合 C++ 代码更加容易一些。另外在开始我们的例子之前,需要提前说明几点: C# 中的数据有两种类型:引用类型(reference types)和值类型(value types)。 简单类型(包括int, long, double等)和结构(structs)都是值类型,而其他的类都是引用类型。 简单类型...
转载
2009-12-15 00:43:00
150阅读
2评论