C#
Milo米啊米啊米
admihbf
展开
-
#114 – How Dependency Properties Are Implemented(依赖属性是如何应用的)
在WPF中,依赖属性可以当做一般CLR属性一样使用,但是它实际应用起来却完全不一样。它增加了许多复杂的功能处理数据绑定、属性继承和属性更改通知。一个想要应用依赖属性的类必须继承自DependencyObject,DependencyObject 类支持读写依赖属性。翻译 2016-06-21 17:51:03 · 442 阅读 · 0 评论 -
StringBuilder 的容量(StringBuilder Capacity)
在使用StringBuilder 实例的时候,你不需要关心它为其存储的字符串分配了多大的内存,它会自动为字符串创建足够的内存。其Capacity 属性表明了一个StringBuilder 实例最多可以存储多少个字符,当存储的字符所需的空间大于这个数的时候,StringBuilder 会自动增大内存,增加Capacity 。而StringBuilder 实例的Length 属性则表示当前存储翻译 2017-02-09 18:05:57 · 13767 阅读 · 2 评论 -
C#用Graphics书写文字时计算字符串所占的像素单位大小
System.Drawing.Graphics g = e.Graphics; // 获得一个Graphics实例string str = "string";System.Drawing.Font font = new System.Drawing.Font(new System.Drawing.FontFamily(this.FontFamily.Source), 32);System.D原创 2017-09-07 11:22:37 · 6186 阅读 · 0 评论 -
#736 – 通过代码获取硬件支持的最大触摸点数(Finding the Maximum Number of Touch Points at Run-time)
原文地址;https://wpf.2000things.com/2013/01/17/736-finding-the-maximum-number-of-touch-points-at-run-time/我们可以使用Win32的API函数GetSystemMetrics 获取硬件支持的最大触摸点数。class Program{ [DllImport("user32.dll")]翻译 2017-06-27 11:03:38 · 625 阅读 · 0 评论 -
C#中使用系统剪切板
在C#中,我们可以使用静态类System.Windows.Clipboard 来使用系统剪切板复制和剪切内容。Clipboard.SetText函数,向剪切板中插入内容,将制定的内容添加到剪切板;Clipboard.GetText函数,获取剪切板中当前的内容。原创 2017-06-06 09:03:48 · 6293 阅读 · 0 评论 -
C# 中的转意字符
C#中允许在字符串中通过转移字符插入一些特殊的字符。转意字符是以下划线(\)开头的一串字符。下面是C#中所有的转意字符: \a – 警告,产生蜂鸣 \b – 回退,退格 \f – 换页 \n – 换行 \r – 回车 \t – 水平制表符 \v – 垂直制表符 \’ – 单斜杠 \” – 双引号 \\ – 反斜杠翻译 2017-01-23 11:26:02 · 1395 阅读 · 0 评论 -
使用StringBuilder 比使用String 来组合连接字符串更加有效率
通常我们使用“+”操作符来组合字符串,这样十分方便。但是这样并不是十分有效率,因为每次组合成的新字符串都需要重新开一片内存空间存储。下面我们做一个简单的测试,将50000个整数组合成字符串:string s1 = "";for (int i = 0; i < 50000; i++) s1 = s1 + i.ToString();在测试环境张,这个循环花费了30430毫秒。翻译 2017-01-23 11:01:46 · 926 阅读 · 0 评论 -
使用检查数据(int,double,float等)溢出,并抛出异常
在默认情况下,当溢出发生的时候,系统会自动的对结果进行截断。比如int n1 = int.MaxValue; // 2147483647 (0x7FFFFFFF)n1 = n1 + 1; // Now -2147483648 (wrapped) 加1后溢出,被截断你也可以通过抛出一个异常,而非截断。想要这样做,你需要使用checked 关键字:翻译 2017-01-16 18:15:00 · 6277 阅读 · 0 评论 -
C#中使用@替代使用转意字符
在字符串中,如果出现一些特殊的字符,需要使用转意字符表示,这样很麻烦。其实可以在字符串前面增加"@"来替代使用转意字符。比如表示路径:string file = "C:\\MyDir\\Another Dir\\thefile.txt";可以使用下面的代码替换,结果是一样的。string file = @"C:\MyDir\Another Dir\thefile.txt";原创 2017-02-05 17:09:19 · 944 阅读 · 0 评论 -
什么时候使用Decimal 类型(When to Use the Decimal Type)
在货币或者财务方面的计算的时候建议使用decimal (System.Decimal)类型,或者在你需要使用很多位小数以及高精度的时候应该使用decimal 类型,以避免舍入方面的错误。比如:float f1 = 12345678901234567.28f; // 1.23456784E+16double d1 = 12345678901234567.28d; // 123翻译 2016-12-26 17:57:10 · 2158 阅读 · 0 评论 -
标识符
C#中的标识符是你给变量,类实例,接口实例,方法和属性等起的名字。它遵循以下规则: -区分大小写(比如“name”和“Name”是不一样的标识符) -必须以字符或者下划线“_”开始 -不能包含空格 -可以包含Unicode 字符 -不能喝内置关键字一样你实际上可以在内置关键字前面加一个‘@’字符来作为标识符。在下面的例子中声明一个string 类型的变量取名为“@s翻译 2016-12-13 15:03:55 · 550 阅读 · 0 评论 -
在Visual Studio 2010中指定命令行调试参数(Specify Command Line Arguments in Visual Studio 2010)
通常情况下在我们调用程序的时候会需要传递命令行参数。然而,在测试程序的时候,我们希望指定命令行传入的参数。你可以在项目属性窗口中进行设置,比如在Debug页面。在上图中的位置可以指定程序命令行传入的参数。注意: -你可以在所有类型的项目中这么设置,比如win form ,WPF或者控制台程序 -你可以分别在Debug和Release模式下指定参数 -这些参数只会在调试模式下翻译 2016-12-12 16:29:56 · 2967 阅读 · 0 评论 -
#117 – Registering a Dependency Property(注册一个依赖属性)
为了使用依赖属性,要在使用的类中创建一个DependencyProperty 类的静态实例。之所以创建静态的实例是因为在DependencyProperty 类中仅仅只是描述这个依赖属性,而并没有真正的存储这个依赖属性的值。你可以翻译 2016-06-23 17:28:43 · 546 阅读 · 0 评论 -
#116 – Dependency Property Values Are Stored in the DependencyObject(依赖属性存储在DependencyObject中)
标准的CLR属性值是存储在定义该属性的实例中的,即使这个属性自创建以后从来没有被复制或者更改,它依然会占用内存空间。而依赖属性的值只有被设置为非默认值的时候才会被存储(值不占用内存空间),而当访问没有设置值的依赖属性将会只返回一个默认的值。翻译 2016-06-21 18:13:05 · 308 阅读 · 0 评论 -
HTTP上传Base64字符串问题
最近在使用HTTP向服务器上传经过Base64加密的图片时,发现上传后Base64字符串中的“+”全部都变成了空格。具体原因可以参看http://blog.csdn.net/liang_ys/article/details/52953716我的解决方法是使用System.Web.HttpUtility.UrlEncode函数对字符串进行重新编码。System.Web.HttpUtility.U原创 2017-10-26 10:41:40 · 3592 阅读 · 0 评论