C#之初级篇
来源:互联网 发布:银行软件开发收入 编辑:程序博客网 时间:2024/05/22 01:14
bool类型
bool a=true;
装箱&拆箱
装箱:将值类型隐式转换为引用类型
首先分配一个对象实例,然后将值类型的值复制到该实例中
int i=10;object obj=i;//将int型的变量i隐式的转换成引用类型,并将其值赋给object类型的变量obj
拆箱:将引用类型隐式的转换成值类型
检查该对象实例是否为给定值类型的一个装了箱的值,将值从实例中复制出来
int i=10;object o=i;int j=(int)o;
引用参数&输出参数
ref 引用参数不创建新的位置,引用参数和其基础变量操作的是同一个变量
out 输出参数的值总是与基础变量相同,该函数成员将在这一个存储位置存储新的值,并修改基础变量的值
int F(int j,out int i){j--;i=j;//在修改i参数的值的同时也修改了i变量的值return i+j;}...int i;int sum=F(100,out i);
class Program { int F(ref int i, int j) { i--; return i + j; } static void Main(string[] args) { int i = 10; Program p = new Program(); int sum = p.F(ref i, 10); Console.WriteLine("sum的值是:" + sum); Console.ReadLine(); } }
类型测试运算符 is as
is运算符用来测定运行时类型是否与给定类型兼容,结果为bool
int i=100;bool j=i is object;//判断变脸i是否可以转换成object类型as运算符是将一个值显示的转换为一个给定的引用类型,如果转换失败,则返回null
int i=10;object j=i as object;//将i由int类型转换成object类型
foreach语句
int [] arr={2,3,4,5};int sum=0;foreach(int i in arr)//可以;理解为i是第几个数据{sum+=i;}
命名空间
在同一个命名空间中,各个类可以互相调用,如果在不同的命名空间中,就需要在调用的类之前添加对应的命名空间名称加点号
namespace Test{class demo1{}class demo2{}class demo3{static void Main(string[] args){Test.demo1 d1=new Test.demo1();Test.demo2 d2=new Test.demo2();}}}
::运算符
在程序中,可能会使用与系统封装的类相同的的名称命名的一个类,使用双冒号可以在指定的命名空间中寻找1标示符
M::test1 t1=new M::test1();//使用::限定为M命名空间中的test1L::test1 t1=new L:;test1();//使用::限定为M命名空间中的test1
seald
seald类,密封类不能作为基类,也不能作为抽象类,因此不能从密封类派生新的类
seald class Classs1{public void Fun(){}}
虚方法
虚方法可以由派生类实现(重写方法)
...public class Program{public virtual void P1(){Console.WriteLine("program p1");}}public class Test:Program{public override void P1(){Console.WriteLine("Test.p1");}}...
密封方法
使用sealed修饰符,可以防止派生类重写该方法
public class Test{public sealed override void p{Console.WriteLine("Test");}}
属性
C#特有机制
...public class Program{private string name;publid string Name{get{return name;}set{name=value;}}static void Main(){Program p=new Program();p.Name="hxk";string name=p.Name;console.WriteLine(name);}}
索引器
申明索引器时,需要使用this关键字
public class Program{private string[] list;//string类型的数组public string this[int index]//申明索引器,索引为int类型{get{ return list[index];}//获取list数组中的元素set{if(index>-1&&index<list.Length) list[index]=value;//设置list数组元素的值}}public Program(int count)//构造函数{list=new string[count];for(int i=0;i<count;i++){list[i]=i.toString();}}static void Main(string[] args){int count=100;Program p=new Program(count);for(int i=0;i<count;i++){//通过索引器访问list数组的元素Console.WriteLine(p[i]+"");if(i%10==0)Console.WriteLine();}}}
析构函数 ~
析构函数是手动释放类的实例占用的资源,并销毁类的实例
public class Program{~Program(){Console.WriteLine("销毁类的实例");}}
结构
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Chapter9{ class Program { //声明结构S public struct S { int i; public S(int i) { this.i = i; } public void F() { Console.WriteLine("今天是" + i + "号。"); } } static void Main(string[] args) { S s = new S(21); s.F(); Console.ReadLine(); } }}
动态数组
namespace Chapter10{ class Program { static void Main(string[] args) { ArrayList l = new ArrayList(); //声明一个动态数组l l.Add("今天是2012年12月11日"); l.Add(2012); l.Add(12); l.Add(11); foreach (object obj in l) { Console.WriteLine(obj); //将动态数组各元素打印输出 } Console.ReadLine(); } }}
0 0
- C#之初级篇
- C#类型转换之初级篇(1)
- C#初级入门之---读
- C# 正则表达式初级篇
- UML之初级篇
- 排序之初级篇
- C#初级
- C#初级
- webservice之XFire初级篇
- webservice之CXF初级篇
- Rxjava之旅-初级篇
- Angular2初级篇之路由
- C#初级篇数组的用法
- C#语言初级入门
- c#数据库连接初级入门
- C#语言初级入门
- C#学习初级总结
- C#面向对象初级
- poj 1426 bfs
- mtk硬件启动关闭蓝牙功能的项目:mtk 上层操作GPIO应用示例
- 关于Java并发编程的总结和思考
- hadoop mapreduce 对于压缩文件的支持利与弊
- 实例2:5行代码实现浏览三维模型
- C#之初级篇
- PHP字符转义相关函数小结(php下的转义字符串)
- c++中派生类构造函数的执行顺序
- java程序中使用SSH框架的好处
- CentOS 6.4最常用命令及快捷键整理
- Caffe + Ubuntu 12.04 64bit + CUDA 5.5 配置说明
- (翻译)开始iOS 7中自动布局教程(二)
- 【BZOJ2563】阿狸和桃子的游戏 贪心
- 数组转List-典型代码缺陷分析(三)