一、命名空间
开发一个大型工程时,经常会用到许多对象,需要创建很多类,而且有的时候类的名称会有冲突。要解决类名称冲突有两种方法:一是创建不同的类名以保证类名不冲突;二是使用命名空间(namespace)。命名空间不仅可以减少名称冲突,而且有助于很好地组织整个工程(C#的程序代码类、结构、接口等存放在命名空间中)。
namespace 命名空间名
{
//命名空间的成员(可以是类、结构、接口等数据类型,也可以是另一个命名空间)
}
例 创建一个控制台程序,在控制台屏幕输出“同学们,我们一起来学习C#。”.
using System;//系统命名空间
namespace chap3_2//用户命名空间
{class class1//声明一个类
{
static void Main(string[] args)
{
Console.WriteLine("同学们,我们一起来学习C#。");//输出
Console.Read();//输入
}}}
二、注释
1、单行注释
格式://
可放在某语句之后,也可单独占一行。
2、 多行注释
格式:/*注释内容*/
可跨多行。
三、常量和变量
(一)常量
分:直接常量和符号常量
1、符号常量的定义
格式:const 数据类型 常量名=常量值
const double PI=3.1415926;
const string classname=”05 计算机一班”
说明:
l 符号常量在定义时必须赋初值。
l 符号常量一经定义,在程序运行过程中是不能更改的。
2、 标识符
标识符是用户给程序中所使用的常量、变量、类、对象和方法等所起的名字,在命名时必须遵守如下规则:
l 必须以字母或下划线开头,后跟字母、数字和下划线。
l 区分大小字
(二)变量
int x,y=60;//同时定义了两个变量,为其中的一个赋值。
string name=”李立”;//定义了一个字符串变量。
例2 创建一个控制台项目,要求从控制台任意输入一串字符,然后输出刚才输入的内容。
using System;
namespace chap3_3
{
class class1
{
static void Main(string[] args)
{
string str1;
Console.WriteLine("请输入任意字符串:");
str1 = Console.ReadLine();
Console.WriteLine("你输入的内容为:{0}", str1);
Console.Read();
}
}
}
Console.WriteLine("你输入的内容为:{0}", str1);语句的功能是在控制台上输出指定的内容,当输出多项内容时,各输出项的位置用参数说明符{0}、{1}……来表示。参数说明符的下标从“0”开始。
四、数据类型
C#的数据类型主要分为:值类型和引用类型。
值类型包括一些简单类型如:int,float,char,string,枚举类型和结构类型。
引用类型包括类、接口、代理和数组类型。C # 里有两个内置的引用类型(?):object类型和string类型。
装箱与开箱
装箱是把值转换成引用类型
int i=10;
object obj=i;//装箱转换
开箱是把引用类型转换成值
int i=10;
object obj=i;
int j=(int) obj;
类型转换
隐式主要用于安全的类型转换
int k=100;
long i=k;
显式转换可调用相应的转换函数来完成
例如double x=1234.7;
int a;
a=(int) x;
system.convert提供了一个基础数据类型转换为另一个基础类型的方法。
例如:Double MyDouble=42.72;
int MyInt=Convert。ToInt32(MyDouble);
运算符:
“??”是一种比较特殊的运算符,如果“??”运算符的左操作数非空,该运算符将返回左操作数,否则返回右操作数。
a+=b等同于a=a+b;
^为逻辑运算符 a^b意义为a和b真假属性?相异时,则为ture,
typeof用于获得系统圆形对象的类型,也就是定义对象的类型
++a将变量加一之后在输出,
a++先输出,后加一
可调用tostring()来完成数值型数据向字符串类型的转换
可用()运算符来完成数值类型间的转换
可调用parse函数来完成字符串向数值型数据的转换。
sort[i] = int.Parse(Console.ReadLine());
Foreach语句用于循环访问集合以获取所需信息
一般语法格式如下:
f
foreach(数据类型 标识符 in 表达式)
{
循环体
}
Foreach语句
范例:
using System;
class test
{
public static void Main()
{
int[] arrnum = new int[] { 0, 34, 2, 22, 54, 8, 23 };
foreach (int i in arrnum)
{
System.Console.WriteLine(i);
}
}
}
异常处理
1、 try… catch语句
try
{
Console.WriteLine("请输入除数!");
int i=int.Parse(Console.ReadLine());
Console.WriteLine("1000除以{0}={1}", i, 1000 / i);
}
catch(DivideByZeroException e)//上面代码中DivideByZeroException为系统定义的异常,当除数为”0”时,将产生一个异常,也就是生成该类的一个对象。
{
Console.WriteLine("除以0异常{0}",e);
2、 try…finally语句
finally块用于清除在try块中分配的任何资源,不管try块执行时是否产生异常,finally块中的语句总是执行的。
try
{
i = (int)o; // 异常
}
finally
{
Console.WriteLine("程序继续执行");
Console.Write("i={0}", i);
}
五、类和面向对象
类是对某一类对象的抽象,而对象是某一种类的实例。类是抽象的,而对象是具体的。一个类可以产生很多对象,类产生对象的过程称为对象的实例化。
class是定义类的关键字,类的成员定义包括数据成员(用来描述属性的)和函数成员(用来描述对象)两部分;类修饰符包括public,private,protected,internal,new,abstract 和sealed。其中
public 公有的,该类的访问不受限制
private私有的,访问仅限于当前类或包含类
protected受保护的,表示访问仅限于当前类或派生类。
internal内部的,表示访问仅限于当前命名空间内。
new用于嵌套类和隐藏新类中的同名成员
abstract用于定义抽象类,只能作为其他类的基类。
sealed用于定义密封类,不能派生其他类。
数组定义和输出
int[] sort = new int[10];
for (int i = 0; i < 10; i++)
{
Console.Write("请输入第{0}个整数:", i + 1);
sort[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine("输出:");
for (int i = 0; i < 9; i++)
{
Console.Write("{0}\t", sort[i]);
}
浙公网安备 33010602011771号