.NET学习之010203总结

1、可空类型( double? dNum=null;)

   ·可空类型可以强制转换为对应的基础类型,比如int?x=3;int y=(int)x;,但在转换之前一定要先测试是否不为空,如果为空的话就会出错。

   ·因为可空类型可能为空,于是很多运算法则将不再简单适用,比如A+B,如果A或者B当中有一个或者两个为可空类型,那么它们便不能简单相加,因为它们可能会为空,这时结果也就可能会为空,所以一定要先使用HasValue属性测试是否为空,或者使用GetValueOrDefault属性返回该基础类型所赋的值或默认值,再或者使用??运算符分配默认值,当前值为空的可空类型被赋值给非空类型时将应用该默认值,比如int?x=null;int y=x??-1;,但是切不可直接进行运算。

代码 

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///Class1 的摘要说明
/// </summary>
public class Class1
{
    public int? _id;

    public int? Id
    {
        get { return _id; }
        set { _id = value; }
    }

    public Class1()
    {
        //
        //TODO: 在此处添加构造函数逻辑
        //
    }
}
代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default6 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Class1 c = new Class1();
        Response.Write(c._id+"<br>");
        Response.Write(c.Id);//结果什么都没有输出,在类的成员变量(全局变量),可控类型默认值为null,如果是非可空的int类型默认值为0.
       
    }
}

2、面向对象三大特征

  ->封装性:打包,便于管理
  ->继承性:将一个类库作为原始模板,在其上扩展另外的类库
      拿来主义
      解决代码的冗余
      单根性、传递性
  ->多态性:对象在调用同一个方法的时候表现出来的多种状态
    -->重写基类方法实现多态,父类统一调用,子类具体实现;对象.方法(根据对象选择对应的方法,实现多态)
    -->隐藏基类方法实现多态
    -->new则隐藏,over重写,隐藏看类型,重写只管新

3、new 申请内存->开辟内存->指向内存

  ->从子类构造方法往上找,依次调用构造方法(先将父类的成员初始化完毕,再将子类的成员初始化完毕)

4、里氏转换

   ->子类可以赋值给父类对象
   ->父类对象可以强制转换成对应的子类对象
      变量 is 类型          :   true/false (is 适用引用类型)
      父变量 as 子类型    :   结果/null

5、ref  和out

   ->方法内外变量不同,值相同,变量不同,如果希望内外变量相同,就可以用ref
   ->使用ref必须在使用前赋值,方法中可以改变这个变量的值,如果该改变相当于返回多个值
   ->out必须在方法中赋值后使用

6、dataGridView

   ->dataGridView绑定数据需要使用属性,所以可以用自动属性来操作。

7、单例模式

   1)将构造函数私有化
   2)提供一个静态方法,返回一个对象
   3)创建一个单例
	public static Form2 FrmSingle=null;//全局唯一的单例;
	private Form2()
		{
		   InitializeComponent();
		}
	public static Form2 getSingle(){
		  if(FrmSingle=null){
			FrmSingle=new Form2();
		}
               return FrmSingle}

8、XML

  1)严格大小写
  2)成对出现
  3)有且只能有一个

9、String

  ->构造方法
new string(char[])
new string (char,int)
  ->常用属性
索引(Char) str[3]
Length
  ->常用方法
增:
 构造方法
 string Insert (int startindex,string value)
   string string.Join(string splitStr,string[]);//SplitStr分割字符
 string Replace(string,string);//"123".Replace("2","222");将其中2替换成222
 string string.Concat(string[]);//将字符串合并成一个字符串
 string PadLeft(int,char)//在左边填充一定空格,以补齐它
 string PadRight(int,char)
       删:
 string Remove(int starIndex,int count);
 string Substring(int startIndex,int count);
 string Trim(params,char[]);
 string TrimStart();
 string TrimEnd();
       改:
 首先ToCharArray(),再Join或Concat
 string ToUpper();
       查:
 bool Contains(string);
 int IndexOf(char,int);
 int LastIndexOf(char,int);//获得文件名
 int IndexOfAny(char[],int);
 bool EndWith(string);
其他:
 bool string.IsNullOrEmpty(string);
 string[] r="as d f fg s ".Split(" ".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);

10、StringBuilder

  ->字符串不可变,长期拼接字符串性能较低
  ->Stringbuilder
         Append(string);
         AppendLine(string)
         AppendFormat("{0}{1}",1,“22”);

11、List<T>,Dictionary<TKey,TValue>

   List<T>  线性集合,长度可变
        -->增,Add() AddRange()
-->删,Remove(),RemoveAt()
-->改
-->查,bool Contains(T),IndexOf()
-->foreach(类型 临时变量 in 集合)
  Dictionary<TKey,TValue> 散列集合
-->增,Add(键,值)
-->删,RemoveKey
-->改,索引 dic["dictionary"]="词典()"
-->查,索引 ContainsKey

12、File静态

        AppendAllText
AppendAllLines
ReadAllText
WriteAllText
WriteAllLines

13、Directory静态

        string[] GetFiles(string)//返回指定路径下的所有文件
string[] GetDirectories(string)//返回路径下的所有子文件夹
bool Exis()

13、Path处理路径

获得后缀名
获得文件名
获得没有后缀名的文件名
获得全路径
        FileInfo DirectoryInfo DriverInfo















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值