c#代码收集

c#代码收集


--来自网上收集

1、DateTime 数字型

System.DateTime currentTime=new System.DateTime();
  1.1 取当前年月日时分秒

currentTime=System.DateTime.Now;
  1.2 取当前年

int 年=currentTime.Year;
  1.3 取当前月

int 月=currentTime.Month;
  1.4 取当前日

int 日=currentTime.Day;
  1.5 取当前时

int 时=currentTime.Hour;
  1.6 取当前分

int 分=currentTime.Minute;
  1.7 取当前秒

int 秒=currentTime.Second;
  1.8 取当前毫秒

int 毫秒=currentTime.Millisecond;
(变量可用中文)
  1.9 取中文日期显示——年月日时分

string strY=currentTime.ToString("f"); //不显示秒
  1.10 取中文日期显示_年月

string strYM=currentTime.ToString("y");
  1.11 取中文日期显示_月日

string strMD=currentTime.ToString("m");
  1.12 取当前年月日,格式为:2003-9-23

string strYMD=currentTime.ToString("d");
  1.13 取当前时分,格式为:14:24

string strT=currentTime.ToString("t");
  2、字符型转换 转为32位数字型

  Int32.Parse(变量) Int32.Parse("常量")

  3、 变量.ToString()

  字符型转换 转为字符串
  12345.ToString("n"); //生成 12,345.00
  12345.ToString("C"); //生成 ¥12,345.00
  12345.ToString("e"); //生成 1.234500e+004
  12345.ToString("f4"); //生成 12345.0000
  12345.ToString("x"); //生成 3039 (16进制)
  12345.ToString("p"); //生成 1,234,500.00%

  4、变量.Length 数字型

  取字串长度:

  如: string str="中国";

int Len = str.Length ; //Len是自定义变量, str是求测的字串的变量名
  5、字码转换 转为比特码

  System.Text.Encoding.Default.GetBytes(变量)

  如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);

  然后可得到比特长度:

  len = bytStr.Length;

  6、System.Text.StringBuilder("")

  字符串相加,(+号是不是也一样?)

  如:

System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("中华");
sb.Append("人民");
sb.Append("共和国");
  7、变量.Substring(参数1,参数2);

  截取字串的一部分,参数1为左起始位数,参数2为截取几位。

  如:string s1 = str.Substring(0,2);

  8、取远程用户IP地址

String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
  9、穿过代理服务器取远程用户真实IP地址:

if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}
  10、存取Session值

Session["变量"];
  如,赋值:

Session["username"]="小布什";
  取值:

Object objName=Session["username"];
String strName=objName.ToString();
  清空:

Session.RemoveAll();
  11、用超链接传送变量

String str=Request.QueryString["变量"];
  如在任一页中建超链接:<a href=Edit.aspx?fbid=23>点击</a>

  在Edit.aspx页中取值:String str=Request.QueryString["fdid"];

  12、创建XML文档新节点

  DOC对象.CreateElement("新建节点名");

  13、将新建的子节点加到XML文档父节点下

  父节点.AppendChild(子节点);

  14、 删除节点

  父节点.RemoveChild(节点);

  15、向页面输出:Response

Response.Write("字串");
Response.Write(变量);
  跳转到URL指定的页面:

Response.Redirect("URL地址");
  16、查指定位置是否空字符

char.IsWhiteSpce(字串变量,位数)——逻辑型;   
  如:

string str="中国 人民";
Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。
  17、查字符是否是标点符号

char.IsPunctuation(''字符'') --逻辑型
  如:

Response.Write(char.IsPunctuation(''A'')); //返回:False
  18、把字符转为数字,查代码点,注意是单引号。

  (int)''字符''

  如:

Response.Write((int)''中''); //结果为中字的代码:20013
  19、把数字转为字符,查代码代表的字符:(char)代码

  如:

Response.Write((char)22269); //返回“国”字。
  20、 清除字串前后空格: Trim()

  21、字串替换

  字串变量.Replace("子字串","替换为")

  如:

string str="中国";
str=str.Replace("国","央"); //将国字换为央字
Response.Write(str); //输出结果为“中央”
  再如:(这个非常实用)

string str="这是<script>脚本";
str=str.Replace("<","<font><</font>"); //将左尖括号替换为<font> 与 < 与 </font> (或换为<,但估计经XML存诸后,再提出仍会还原)
Response.Write(str); //显示为:“这是<script>脚本”
  如果不替换,<script>将不显示,如果是一段脚本,将运行;而替换后,脚本将不运行。

  这段代码的价值在于:你可以让一个文本中的所有HTML标签失效,全部显示出来,保护你的具有交互性的站点。

  具体实现:将你的表单提交按钮脚本加上下面代码:

string strSubmit=label1.Text; //label1是你让用户提交数据的控件ID。
strSubmit=strSubmit.Replace("<","<font><</font>");
  然后保存或输出strSubmit。

  用此方法还可以简单实现UBB代码。

  22、取i与j中的最大值:Math.Max(i,j)

  如 int x=Math.Max(5,10); // x将取值 10

  加一点吧 23、字串对比......

  23、字串对比一般都用: if(str1==str2){ } , 但还有别的方法:

  (1)、

string str1; str2
//语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:
if(str1.EndsWith(str2)){ Response.Write("字串str1是以"+str2+"结束的"); }
  (2)、

//语法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.
  (3)、

//语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.
  24、查找字串中指定字符或字串首次(最后一次)出现的位置,返回索引值:IndexOf() 、LastIndexOf(), 如:

str1.IndexOf("字"); //查找“字”在str1中的索引值(位置)
str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的索引值(位置)
str1.IndexOf("字串",3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在str1中的索引值(位置)
  25、在字串中指定索引位插入指定字符:Insert() ,如:

str1.Insert(1,"字");在str1的第二个字符处插入“字”,如果str1="中国",插入后为“中字国”;
  26、在字串左(或右)加空格或指定char字符,使字串达到指定长度:PadLeft()、PadRight() ,如:

<%
string str1="中国人";
str1=str1.PadLeft(10,''1''); //无第二参数为加空格
Response.Write(str1); //结果为“1111111中国人” , 字串长为10
%>
  27、从指定位置开始删除指定数的字符:Remove()

  28.反转整个一维Array中元素的顺序。

har[] charArray = "abcde".ToCharArray();
Array.Reverse(charArray);
Console.WriteLine(new string(charArray));
  29.判断一个字符串中的第n个字符是否是大写

string str="abcEEDddd";
Response.Write(Char.IsUpper(str,3));


获取文件的版本信息:

FileVersionInfo myFileVersionInfo1 = FileVersionInfo.GetVersionInfo( "D://TEST.DLL" );
textBox1.Text="版本号: " + myFileVersionInfo1.FileVersion; 

    更改文件属性,删除只读文件:

    下例欲将E:/test.txt文件拷贝至D:/tmp/test.txt,但D:/tmp/test.txt已经存在.

//File.Copy( sourceFile,destinationFile,true ); 用来拷贝文件
//当destinationFile已经存在时,无法将文件file1拷贝到目标文件,
//因此先删除destination文件,File.Delete( )方法不能删除只读文件,
//因此,如果文件属性为只读( Attributes属性中会包含有"ReadOnly" ),
//先把文件属性重置为Normal,然后再删除:
string file1="E://test.txt";
string destinationFile="d://tmp//test.txt";
if( File.Exists( destinationFile ) )
{
    FileInfo fi=new FileInfo( destinationFile );
    if( fi.Attributes.ToString( ).IndexOf( "ReadOnly" )!=-1 )
    fi.Attributes=FileAttributes.Normal;
    File.Delete( destinationFile );
}
File.Copy( file1,destinationFile,true );

C#中字符串的格式化及转换成数值的方法

    字符串转换成数字,比如"1234"转换成数字1234:

string str="1234";
int i=Convert.ToInt32( str ); 

    格式化字符串,向长度小于30的字符串末尾添加特定字符,补足n个字符,使用String类的PadRight( int,char )方法:

String str="1234";
str=str.PadRight( 30,' ' ) //向长度小于30的字符串末尾添加空格,补足30个字符

    按行读写文件

    判断文件是否存在:File.Exists( string filePath )

    判断目录是否存在:Directory.Exists( "D://LastestVersion" )

    按行读取文件:

int fileCount=0;
// Open the file just specified such that no one else can use it.
StreamReader sr = new StreamReader( textBox1.Text.Trim( ) );
while( sr.Peek( ) > -1 )//StreamReader.Peek( )返回下一个可用字符,但不使用它
{
    listBox1.Items.Add( sr.ReadLine( ) );
    fileCount++;
}
sr.Close( );

    按行写入文件:

StreamWriter sw = new StreamWriter( "D://result.txt" );
for( int i=0;i<10;i++ )
{
    sw.WriteLine( "这是第"+i.ToString( )+"行数据" );
}

    文件目录对话框的使用

    文件对话框即过滤条件的使用:

string resultFile="";
OpenFileDialog openFileDialog1 = new OpenFileDialog( );
openFileDialog1.InitialDirectory = "D://Patch" ;
openFileDialog1.Filter = "All files ( *.* )|*.*|txt files ( *.txt )|*.txt" ;
openFileDialog1.FilterIndex = 2 ;
openFileDialog1.RestoreDirectory = true ;
if( openFileDialog1.ShowDialog( ) == DialogResult.OK )
resultFile=openFileDialog1.FileName; 

    目录对话框的使用:

string resultFolder="";
FolderBrowserDialog openFolderDialog1=new FolderBrowserDialog( );
openFolderDialog1.RootFolder=Environment.SpecialFolder.MyComputer;
if( openFolderDialog1.ShowDialog( )==DialogResult.OK )
resultFolder=openFolderDialog1.SelectedPath;

//获得汉字的区位码
byte[] array = new byte[2];
array = System.Text.Encoding.Default.GetBytes( "啊" );

int i1 = ( short )( array[0] - ''/0'' );
int i2 = ( short )( array[1] - ''/0'' );

//unicode解码方式下的汉字码
array = System.Text.Encoding.Unicode.GetBytes( "啊" );
i1 = ( short )( array[0] - ''/0'' );
i2 = ( short )( array[1] - ''/0'' );

//unicode反解码为汉字
string str = "4a55";
string s1 = str.Substring( 0,2 );
string s2 = str.Substring( 2,2 );

int t1 = Convert.ToInt32( s1,16 );
int t2 = Convert.ToInt32( s2,16 );

array[0] = ( byte )t1;
array[1] = ( byte )t2;

string s = System.Text.Encoding.Unicode.GetString( array );

//default方式反解码为汉字
array[0] = ( byte )196;
array[1] = ( byte )207;
s = System.Text.Encoding.Default.GetString( array );

//取字符串长度
s = "iam方枪枪";
int len = s.Length;//will output as 6
byte[] sarr = System.Text.Encoding.Default.GetBytes( s );
len = sarr.Length;//will output as 3+3*2=9

//字符串相加
System.Text.StringBuilder sb = new System.Text.StringBuilder( "" );
sb.Append( "i " );
sb.Append( "am " );
sb.Append( "方枪枪" );

/

string --> byte array

byte[] data=Syste.Text.Encoding.ASCII.GetBytes( string );

string --> byte

byte data = Convert.ToByte( string );

byte[]-->string

string string = Encoding.ASCII.GetString(bytes, 0, nBytesSize);

修饰符用于限定类型以及类型成员的申明,c#中有13种修饰符,按功能可分为三部分:存取修饰符,类修饰符和成员修饰符.

存取修饰符:

public:存取不受限制.

private:只有包含该成员的类可以存取.

internal:只有当前工程可以存取.

protected:只有包含该成员的类以及继承的类可以存取.

类修饰符:

abstract:可以被指示一个类只能作为其它类的基类.

sealed:指示一个类不能被继承.

成员修饰符:

abstract:指示该方法或属性没有实现.

const:指定域或局部变量的值不能被改动.

event:声明一个事件.

extern:指示方法在外部实现.

override:对由基类继承成员的新实现.

readonly:指示一个域只能在声明时以及相同类的内部被赋值.

static:指示一个成员属于类型本身,而不是属于特定的对象.

virtual:指示一个方法或存取器的实现可以在继承类中被覆盖.

一,哈希表( Hashtable )简述

在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值.Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对.

二,哈希表的简单操作

在哈希表中添加一个key/value键值对:HashtableObject.Add( key,value );
在哈希表中去除某个key/value键值对:HashtableObject.Remove( key );
从哈希表中移除所有元素: HashtableObject.Clear( );
判断哈希表是否包含特定键key: HashtableObject.Contains( key );
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
    public static void Main( )
    {
        Hashtable ht=new Hashtable( ); //创建一个Hashtable实例
        ht.Add( "E","e" );//添加key/value键值对
        ht.Add( "A","a" );
        ht.Add( "C","c" );
        ht.Add( "B","b" );
        string s=( string )ht["A"];
        if( ht.Contains( "E" ) ) //判断哈希表是否包含特定键,其返回值为true或false
        Console.WriteLine( "the E key:exist" );
        ht.Remove( "C" );//移除一个key/value键值对
        Console.WriteLine( ht["A"] );//此处输出a
        ht.Clear( );//移除所有元素
        Console.WriteLine( ht["A"] ); //此处将不会有任何输出
    }
}

三,遍历哈希表

遍历哈希表需要用到DictionaryEntry Object,代码如下:
for( DictionaryEntry de in ht ) //ht为一个Hashtable实例
{
    Console.WriteLine( de.Key );//de.Key对应于key/value键值对key
    Console.WriteLine( de.Value );//de.Key对应于key/value键值对value
}

四,对哈希表进行排序

对哈希表进行排序在这里的定义是对key/value键值对中的key按一定规则重新排列,但是实际上这个定义是不能实现的,因为我们无法直接在Hashtable进行对key进行重新排列,如果需要Hashtable提供某种规则的输出,可以采用一种变通的做法:
ArrayList akeys=new ArrayList( ht.Keys ); //别忘了导入System.Collections
akeys.Sort( ); //按字母顺序进行排序
for( string skey in akeys )
{
    Console.Write( skey + ":" );
    Console.WriteLine( ht[skey] );//排序后输出
}

一 String和StringBuilder
      
      少量的字符串操作不宜采用StringBuilder。
      由于string是不可变得对象,对于string的叠加,每次操作都会生成一个新的string对象。所以针对大量string的操作时,我们会采用 StringBuilde。但似乎很多人都知道这一点,所以只要字符串相加,不管三七二一都用StringBuilder。其实这是个误区,在这里要注意 "大量"一词,少量的字符串操作用StringBuilder反而得不偿失。
    比如下面的两种写法:


string sql = "insert into table (,,,)";
sql += " values ('')";和
StringBuilder sb = new StringBuilder();
sb.Append("insert into table (,,,)");
sb.Append(" values ('')");
string s = sb.ToString();宜采取第一种写法。因为只有两个字符串的相加,谈不上大量。如果用StringBuilder,最后还需要转换成string,结果性能反而差一些。

二 慎用异常

      由于程序抛出一个异常,就会创建一个异常对象,然后应用程序会在Catch块中捕获该异常,造成性能影响非常大。
比如:
int OrderID;
try
{
      OrderID = Convert.ToInt32(this.txtOrderID.Text);
}
catch(Exception e)
{
      OrderID = .
}
这样的代码很不合适,造成的性能开销非常大。应该在客户端写js代码先去验证txtOrderID是否符合要求。


三 关于Session, Request

Session:
很多人喜欢用Session来保存持久对象的值。 但是当你的程序部署在多台服务器上做负载均衡时,可能会得不到Session保存的变量的值。 另外,由于Session是服务器端的内建对象,每开启一个Session对象,都在服务器上占用一些资源。

Request:
在页面间传值取值时,看到很多人都这么写代码:
string CustomerName = this.Request["txtCustomerName"].ToString();
其实后面的ToSTring()多此一举。this.Request["...."]本来就是string类型的,不必再去ToString()一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值