摘要:
托管代码:使用基于CLR的语言编辑器开发的代码称为托管代码。托管堆是CLR中自动内存管理的基础。初始化新进程时,运行时会为进程保留一个连续的地址空间区域。这个保留的地址空间被称为托管堆。托管堆维护者一个指针,用它指向将在堆中分配的下一个对象的地址。最初,该指针设置为指向托管堆的基址。 阅读全文
摘要:
MSSQL为我们提供了两种动态执行SQL语句的命令。分别是EXEC和sp_executesql.实例代码:DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT; SET @TableName ='Orders'; SET @OrderID =10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+ CAST(@OrderID AS VARCHAR(10))+' ORDE 阅读全文
摘要:
基础排序算法:冒泡排序、选择排序、插入排序冒泡排序:多次遍历整个列,并且比较相邻的数值,如果左侧的数值大于右侧数值就进行交换。选择排序:从数组的起始处开始,把第一个元素与数组中的其他元素进行比较。然后,将最小的元素放置在第0个位置上,接着从第1个位置开始再次进行排序。一直到除最后一个元素外的每一个元素都作为新循环的起始点操作过后才终止。插入排序:两层循环。外层循环会逐个遍历数组元素,而内层循环会把外层循环所选择的元素与该元素在数组内的下一个元素进行比较。如果外层循环所选择的元素小于内层循环选择的元素,那么数组元素都向右移以便为内层循环元素留出位置。顺序查找在一个有序的数组中,查找最小值和最大值 阅读全文
摘要:
值转换器可以把一种类型转换成另一种类型。例如,绑定到一个代表图片地址的字符串,希望显示的是图片,将数据存储为浮点类型,但通过 货币的形式呈现,还有奖日期存储成DateTime格式,在界面上显示时使用用Calender控件等。 如果要将值转换器与绑定关联,请创建一个实现IValueConverter接口的类。然后实现Converte和ConvertBack方法。转换器可以将数据从一种类型更改为另一种类型。 Convert和ConvertBack的区别:Convert函数表示从数据源到目标的值转换,ConvertBack函数表示从目标到数据源的值转换。因此,如果绑定模式是一次性绑定或单向绑定,只. 阅读全文
摘要:
1.UserControl.Resources是什么?起什么作用? 1.自百度知道:Resource里面什么都可以放,但通常用于放程序会用到的资源,比如 各种模板(ControlTemplate、DataTemplate...) 各种样式(Style...) 各种转值对象(继承于IValueConverter)等等Resources是FrameworkElement里的属性,几乎所有的控件都可以设置自己的Resources属性,比如可以为么一个TextBox单独添加专属样式,但这样会造成资源浪费,所以通常把通用的资源放到最上一层元素里,这样就可以被所有的子元素使用。如果一个资源整个项目都会用到 阅读全文
摘要:
Binding:一个完整的Binding过程是让源对象中的某个属性值通过一定流向规则进行转换和验证之后绑定到目标对象的某个属性上。这个源对象有ElementName指定,源对象的属性由Path指定,流向规则由Mode指定,转换由Converter指定,验证由ValidatesOnDataErrors等指定。 Binding的属性如下: ElementName:指定源对象的名称 Path:指定需要绑定的源对象的属性名称 Mode:指定Binding的数据流向规则 Converter:指定源对象的属性需要经过用户自定义的转换 silverlight中要使用数据绑定,必须通过绑定表达式来设置目标属. 阅读全文
摘要:
利用定制attribute,可以声明性地为自己的代码构造添加注解,从而实现一些特殊功能。定制attribute允许将定义的信息应用于几乎每一个元数据表记录项。这种可扩展的元数据信息能在运行时查询,从而动态改变代码的执行方式。 attribute可应用于类型和成员。为类型和方法创建和应用用户自定义的attribute会带来极大的便利,但它同时要求编译器理解这些attribute,这样才能在最终的元数据中生成attribute信息。由于编译厂商一般不会发布其编译产品的源代码,所以Microsoft采取另一种机制提供对用户自定义的attribute的支持。这个机制称为定制attribute.它的功. 阅读全文
摘要:
在C#中,ref和out是很特殊的两个关键字。使用它们可以使参数按照引用来传递。通常情况下我们向方法中传递的是值,方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕之后,这些拷贝将被丢弃,而原来的值将不受到影响。此外我们还有向其他方法传递参数的形式,引用(ref)和输出(out)。有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值,修改引用将修改原来变量的值。变量的值存储在内存中,可以创建一个引用,它指向变量在内存中的位置。当引用被修改时,修改的是内存中的值,因此变量的值可以被修改。通俗地,从功能上来讲,使用这两个关键字,可以使一个方法返回多个参. 阅读全文
摘要:
来自维基百科:在计算机编程中,匿名函数(anonymous function)是指一类无需定义标识符(函数名)的函数或子程序。匿名方法实例原来的写法如:this.btnRefresh.Click+=new System.EventHandler(this.btnRefresh_Click); private void btnRefresh_Click(object sender,EventArgs e){ BindData();}使用匿名方法:this.btnRefresh.Click+=delegate (object sender,EventArgs e){BindData();}总结:匿 阅读全文
摘要:
在.NET 3.5的System命名空间中,有5个泛型Func委托类型。Func并无特别之处,只是它提供了一些好用的预定义泛型类型,在很多情况下能帮我们处理问题。最后一个类型用作每种情况下的返回类型。TResult Func<TResult>()TResult Func<T,TResultl>(T arg)...Func<string,double,int>等价于下面的委托类型:public delegate int someDelegate(string arg1,double arg2)如果想使用void为返回型,可使用Action<...> 阅读全文