c#开发-基础知识及有用技巧(一)

添加人:admin四级(1707分)   添加时间:2007-07-04    阅读次数:7714  收藏此教程
14、FromBase64String的问题
在使用Convert.ToBase64String()对字符串进行Base64编码时,注意的几点:
例:
string s = "Hello";
byte[] bytes = Convert.FromBase64String(s);

以上代码在运行时会抛出FormatException异常.提示为:Base-64字符数组的无效长度

原因:当Convert.FromBase64String方法的参数s的长度小于 4 或不是 4 的偶数倍时,将会抛出FormatException。
  
例:

Convert.FromBase64String("Hell"); // Normal.
Convert.FromBase64String("Hell "); // Normal.(忽略空格)
Convert.FromBase64String("Hello!"); // throw FormatException.
Convert.FromBase64String("Hello Net"); // Normal.(忽略空格)

15、避免程序重复运行。(即只允许运行一个实例)
System.Threading.Mutex appSingleton = new System.Threading.Mutex(false, "MyProgInstance_PPP");
if(appSingleton.WaitOne(0, false))
{
    Application.Run(new FormMain(););
}
else
{
    MessageBox.Show("程序已经运行");
}

16、VB中的chr和asc函数在C#中没有,C#中只要用Convert类中的函数进行转换就可以了,如:
int n = Convert.ToInt32('a');
char c = Convert.ToChar(99);

另外,空的char值的获得:Convert.ToChar(0) 例如,在设置了一个textBox的PasswordChar属性后,要清除它,就只能这样了:textBox1.PasswordChar = Convert.ToChar(0) ;
17、C#的String.Format举例
string str1 = String.Format("{0:N1}",56789); //result: 56,789.0
string str2 = String.Format("{0:N2}",56789); //result: 56,789.00
string str3 = String.Format("{0:N3}",56789); //result: 56,789.000
string str8 = String.Format("{0:F1}",56789); //result: 56789.0
string str9 = String.Format("{0:F2}",56789); //result: 56789.00
string str11 =(56789 / 100.0).ToString("#.##"); //result: 567.89
string str12 =(56789 / 100).ToString("#.##"); //result: 567
字符说明示例输出

C 或 c

货币

Console.Write("{0:C}", 2.5);

Console.Write("{0:C}", -2.5);

$2.50

($2.50)

D 或 d

十进制数

Console.Write("{0:D5}", 25);

00025

E 或 e

科学型

Console.Write("{0:E}", 250000);

2.500000E+005

F 或 f

固定点

Console.Write("{0:F2}", 25);

Console.Write("{0:F0}", 25);

25.00

25

G 或 g

常规

Console.Write("{0:G}", 2.5);

2.5

N 或 n

数字

Console.Write("{0:N}", 2500000);

2,500,000.00

X 或 x

十六进制

Console.Write("{0:X}", 250);

Console.Write("{0:X}", 0xffff);

FA

FFFF

 
18、bytes[]和int的相互转换
int s = 100;
byte[] shi = System.BitConverter.GetBytes(s);
int sh = System.BitConverter.ToInt32(shi,0);
19、BitArray和int的相互转换
int[] a = new   int[1];
a[0] = 100;
int[] b = new   int[1];

System.Collections.BitArray shit = new BitArray(a);
shit.CopyTo(b,0);
20、随机数:
1) System.Random
2) xdev所提到的System.Security.Cryptography.RNGCryptoServiceProvider
3) 直接调用Platform SDK中的CryptGenRandom()函数。
其中,和1)相比,2)和3)可以被作为真正的随机数来使用。
4页 第2上一页1234下一页
相关的教程: CSharp 技巧 基础知识
收藏此教程

当前平均分: 5.0(2 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: