2016.3.29
1、当允许一开始不设定初始值也不用赋值这种情况时,可在数据类型后面加? int?age=null;
2、ref关键字使参数按引用传递。其效果是当控制权传递回调用方法时,在方法中对参数所做的更改都将反映在该变量中。若使用ref参数,则方法定义和调用方法都必须显式使用ref关键字。属性不是变量,因此不能用为ref参数传递。
3、装箱 拆箱
装箱:将一个值类型转换为一个引用类型
拆箱:将一个引用类型转换为一个值类型
4、ArrayList对象
包含单一数据值的项目的集合
5、alert弹出对话框的5中方式
1.ClientScript.RegisterStartupScript(this.GetType(),"message","<script>alert('第一种方式,无白屏!');</script>");
2.HttpContext.Current.Response.Write("<script>alert('第二种方式,有白屏!')</script>");
3.public static void Show(System.Web.UI.Page page, string msg)
{
page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript' defer>alert('" + msg.ToString() + "');</script>");
}
Show(this, "第三种方式,无白屏!");
4.Response.Write("<script>alert('第四种方式,有白屏!')</script>");
5.window.showModalDialog('XXX.aspx', '', 'dialogWidth:429px;dialogHeight:200px;location:no,menubar:no,toolbar:no,status:no');
6、table居中显示
<table style="margin:0px auto;"></table>
7、textbox.Text.Trim()
Trim方法去掉收尾的空格
8、const
限定一个常量不允许被改变 类似ReadOnly
2016.3.30
1、相对路径与aspx文件在同级目录下
2、Console.WriteLine在控制台输出,Response.Write在网页中输出
3、Page.Controls.Count 获得页面上的控件数
4、System.Array类
System.Array.Copy();//复制
System.Array.IndexOf(s,"c");查找
5、数组
声明一维数组: int[] age = new int();
声明二维数组: char[,] name = new char[4.5];
声明三维数组: string[,,] strs = new string[,,]
{
{ { "李白", "《静夜思》", "<br><br>" } },
{ { "床前明日光,", "<br>", "疑是地上霜。<br>" } },
{ { "举头望明月,", "<br>", "低头思故乡。" } }
};
6、字符串可以相加
str += Convert.ToString(strs[i, j]) + "<br>";
Response.Write(str);
2013.4.5
1、清空文本框
for (
int i = 0; i < Page.Controls.Count; i++)
{
foreach (Control c
in Page.Controls[i].Controls)
{
if (c
is TextBox)
{
TextBox tb = (TextBox)c;
tb.Text =
"" ;
}
}
}
2、自定义方法如果类型不同则可以名称相同
public
static
String Convert(
String chinese){}
public
static
char Convert(
Char chinese){}
3、用object声明数组 数组中的元素可以是各种类型
objext[] myArray ={"顾晓黎",25,true};
4、声明交错数组
int[][] intArray = new int[3][];
intArray[0] = new int[2];
intArray[1] = new int[3];
intArray[2] = new int[4];
每一个元素值都是一个数组,交错数组需要初始化后才能使用
5、反转数组 Array.Recerse();
6、移位运算
i=2<<33 33的二进制值为00100001 左移位数由第二个操作数33(00100001)的低5位给出(00001) 所以左移一位。 如果第一个操作数为int或uint,则移位数由第二个操作数的低五位给出;如果第一个操作数为long或ulong,则移位数由第二个操作数的低六位给出。
7、double.Parse(System.Console.ReadLine())
将数字的字符串的表示形式转换为它的等效双精度浮点数
TryParse()方法将返回一个布尔值,如果转换成功,返回true,否则返回false
8、string.CompareTo(string)
string str1 = this.TxtStr1.Text;
string str2 = this.TxtStr2.Text;
int i = str1.CompareTo(str2);
i<0 str1<str2 i=0 str1=str2 i>0 str1>str2
9、javascript读取缓存 返回上一页
javascript:history.go(-1)
javascript:history.backs()
10、
asp.net 类,构造函数,方法,字段,属性 学习示例
2016.4.6
s.Length == 0 优于 s == string.Empty 优于 s == null
public partial class test01 : System.Web.UI.Page
{
class Farmer
{
private string name; //字段,一般为private,用于内部的数据传送
public Farmer() //无参数构造函数
{
name = "无参数构造函数!";
}
public Farmer(string FName) //有参数构造函数
{
name = FName;
}
public string Name //属性,前面加了public才能被外部访问
{
get
{
return name;
}
set
{
name = value;
}
}
public string NameAdd() //方法
{
name = name + ",李四";
return name;
}
public static string NameAddStatic() //静态方法,调用静态方法不需要实例化
{
Farmer myFarmer = new Farmer();
return myFarmer.Name+",这是静态方法!";
}
}
protected void Page_Load(object sender, EventArgs e)
{
Farmer farmer1 = new Farmer();
Label1.Text = farmer1.Name;
Farmer farmer2 = new Farmer("张三");
Label2.Text = farmer2.Name;
Farmer farmer3 = new Farmer("张三");
Label3.Text = farmer3.NameAdd();
Farmer farmer4 = new Farmer();
farmer4.Name = "你好";
Label4.Text=farmer4.NameAdd();
Label5.Text = Farmer.NameAddStatic(); //调用静态方法不需要实例化
}
}
{
class Farmer
{
private string name; //字段,一般为private,用于内部的数据传送
public Farmer() //无参数构造函数
{
name = "无参数构造函数!";
}
public Farmer(string FName) //有参数构造函数
{
name = FName;
}
public string Name //属性,前面加了public才能被外部访问
{
get
{
return name;
}
set
{
name = value;
}
}
public string NameAdd() //方法
{
name = name + ",李四";
return name;
}
public static string NameAddStatic() //静态方法,调用静态方法不需要实例化
{
Farmer myFarmer = new Farmer();
return myFarmer.Name+",这是静态方法!";
}
}
protected void Page_Load(object sender, EventArgs e)
{
Farmer farmer1 = new Farmer();
Label1.Text = farmer1.Name;
Farmer farmer2 = new Farmer("张三");
Label2.Text = farmer2.Name;
Farmer farmer3 = new Farmer("张三");
Label3.Text = farmer3.NameAdd();
Farmer farmer4 = new Farmer();
farmer4.Name = "你好";
Label4.Text=farmer4.NameAdd();
Label5.Text = Farmer.NameAddStatic(); //调用静态方法不需要实例化
}
}
11、IndexOf()定位字符及子串
string.IndexOf(str); 从前端开始
stirng.LastIndexOf(str); 从后端开始
未找到则返回-1
12、Format方法 将任何数值、枚举以及日期和时间等基本数据类型格式化为字符串
string str1 = String.Format("{0:d}\n", DateTime.Now);
string str2 = String.Format("{0:C}\n", 89.0f);
13、Join方法连接字符串 Join(string separator ,string[] value)
separator:用来指定字符串的分隔符
value: 用来指定连接的多个字符串数组
String Str1 = "明日";
String Str2 = "科技";
String S = this.TxtS.Text;
String[] strArrary = { Str1, Str2 };
newString = String.Join(S, strArrary);
this.TxtXmm.Text = newString.ToString();
14、Split()分离字符串
返回包含此实例中的子字符串的string数组,参数指定返回的子字符串的最大数量
public string[] Split(char[] separator,int count)
tb.Text.Split(s.ToCharArray(),4);
15、Insert() PadLeft/PadRight()插入字符
String类:
string.Insert(int startIndex,string value);
startIndex:插入的索引位置
value:要插入的字符
string.PadLeft(5,'@');
string.PadRight(5,'@');
string.PadRight(5,'@');
5:结束字符串的字符数
@:填充的字符
StringBuilder类:
String OldStr = this.LblOldStr.Text;
StringBuilder NewStr= new StringBuilder(OldStr);
String InsertStr = this.LblInsertStr.Text;
NewStr.Insert(2, InsertStr);
this.LblNewStr.Text = NewStr.ToString();
16、Remove()方法 在一个字符串的指定位置删除指定的字符
String类:
string.Remove(int startIndex,int count);
startIndex:开始删除字符的位置
count:要删除的字符数
TrimStart方法和TrimEnd方法的使用
string str2 = str.TrimStart(new char[] { '@', '*' });
string str3 = str.TrimEnd(new char[] { '@', '*' });
StringBuilder类:
StringBuilder StrNew= new StringBuilder("1234567");
Int32 StrS1 = Convert.ToInt32(this.LblS1.Text);
Int32 StrS2 = Convert.ToInt32(this.LblS2.Text);
StrNew.Remove(StrS1, StrS2);
this.LblNewStr.Text = StrNew.ToString();
17、使用Replace方法替换字符串
String类:
string str = str1.Replace(str1, str2);
str1:被替换的字符串
str2:要替换的字符串
StringBuilder类:
String StrOld = this.LblOldStr.Text;
StringBuilder StrNew = new StringBuilder(StrOld);
String str2 = this.TextBox1.Text;
StrNew = StrNew.Replace(StrOld, str2);
this.LblStrNew.Text = StrNew.ToString();
2016.4.6
1、使用Append追加字符串
String StrOldStr = this.LblOldStr.Text;
StringBuilder sb4 = new StringBuilder(StrOldStr);//表示可变字符字符串,此类不能被继承
String StrAppendStr = this.TxtAppendStr.Text;
String s = sb4.Append(StrAppendStr).ToString();
this.LblNewStr.Text = s;
2、DateTime类
系统当前时间:DateTime.Now.ToString();
DateTime.Now.ToShortDateString();
DateTime.Now.ToLongDateString();
获取当前日期是星期几:DateTime.Today.DayOfWeek.ToString();//返回英文单词
获取当前年 月数:
year = DateTime.Now.Year;
month = DateTime.Now.Month;
判断是否为闰年:DateTime.IsLeapYear(year);
将日期和时间的字符串表示形式转换为DateTime:DateTime.Parse();
增加时间:DateTime.Now.AddSeconds(30).ToString();
3、TimeSpan获取日期时间的间隔数
DateTime对象相减,会返回TimeSpan对象,调用TimeSpan对象的Days属性可以得到相隔的天数
TimeSpan timeSpan = dateTime1 - dateTime2;
4、值类型允许为null
int? x = null; 等价于System.Nullable<int> x;
int? y = x??5; //x为null时 y赋值为5 否则为x
判断是够有值 x.HasValue
5、path类分析路径字符串的常用方法
GetDirectoryName()返回指定路径字符串的目录信息
GetExtension() 返回指定路径字符串的扩展名
GetFullPath() 返回指定路径字符串的绝对路径
GetPathRoot() 获取指定路径的跟目录信息
HasExtension() 确定路径是否包括文件扩展名
IsPathRooted() 获取一个值,该值指示指定的路径字符串是包含绝对路径信息(true)还是包含相对路径信息(false)
6、 判断字符是否英文半角字符或标点
/// 32 空格
/// 33-47 标点
/// 48-57 0~9
/// 58-64 标点
/// 65-90 A~Z
/// 91-96 标点
/// 97-122 a~z
/// 123-126 标点
全角字符 - 65248 = 半角字符 全角空格例外
string.Empty表示空字符串
7、StringReader类
StringReader sr = new StringReader(str1);
sr.Read(c, 0, 19);
StringWriter类
StringWriter sw = new StringWriter(sb);
sw.Write(s, 0, 11);
8、Lambda表达式 (参数列表)=>{语句块}或(表达式)
myAddOne = x => x + 1;//隐式类型,表达式方法体
myAddOne = x => { return x + 1; };//隐式类型,语句方法体
myAddOne = (int x) => x + 1;//显式类型,表达式方法体
myAddOne = (int x) => { return x + 1; };//显式类型,语句方法体
ToAdd myToAdd = (x, y) => x + y;//多个参数
Method1 myMethod1 = () => Response.Write("myToAdd");//无参数,表达式方法体
Method2 myMethod2 = () => 1;//无参数,语句方法体
9、Math类
取余: Math.DivRem(被除数,除数,out 余数); 32位有符号整数
10、利用Encoding类可以把字符串与字节数组互相转换
//用Ascii编码将xxxByteArray字节数组转化为字串ss
string ss = Encoding.ASCII.GetString(xxxByteArray);
//用系统默认编码将字串ss转换为字节数组test
byte[] test=Encoding.Default.GetBytes(ss);
//用Ascii编码将xxxByteArray字节数组转化为字串ss
string ss = Encoding.ASCII.GetString(xxxByteArray);
//用系统默认编码将字串ss转换为字节数组test
byte[] test=Encoding.Default.GetBytes(ss);
11、ListBox1.Items.Clear();//清空ListBox控件