-
//@命名空间——(下) //2、命名空间的别名 /* using关键字的另一个用途是给类的命名空间指定别名。如果命名空间的名称非常长,又要在代码中使用多次,但不希望该命名空间的名称包含在using指令中(如,避免类名冲突),就可以给该命名空间指定一个别名。 如,它有一个方法GetNamespace(),该方法调用每个类都有的GetType()方法,表示访问类的类型的Type对象,来返回类的命名空间。 using System; using temp=A.B.C; class Test{ public static int Main(){ temp.Name test=new temp.Name(); Console.WriteLine(test.GetNamespace()); return 0; } } namespace A.B.C{ class Name{ public string GetNamespace(){ return this.GetType().Namespace; } } } */ //3、完全限定名 /* 定义:命名空间和类型的名称必须唯一,由指示逻辑层次结构的完全限定名描述。 namespace N1{ class C1{ class C2{ } } namespace N2{ class C2{ } } } 以上代码中: 命名空间N1是全局命名空间的成员。它的完全限定名是N1。 命名空间N2是命名空间N1的成员。它的完全限定名是N1.N2。 类C1是N1的成员。它的完全限定名是N1.C1。 在此代码中使用了两次C2类名。但是完全限定名是唯一的。第一个类名在C1内声明;因此其完全限定名是:N1.C1.C2。第二个类名在命名空间N2内声明;因此其完全限定名是:N1.N2.C2。 使用以上代码段,可这样简写: namespace N1.N2{ class C3{ } } using directive意味着不需要为每个类指定命名空间的名称 */查看全部
-
//@命名空间——(上) /* namespace A { namespace B { namespace C { class Name { //... } } } } Name类的全名是A.B.C.Name。 namespace A.B.C { class Name { //... } } */ //@注意:不允许在另一个嵌套的命名空间中声明多部分的命名空间。如: /* namespace A { namespace B namespace C { ……………… } } 但是这样是可以的,如: namespace A { namespace B.C { ……………… } } */ //1、如果using指令引用的两个命名空间包含同名的类,必须使用完整的名称(或至少较长的名称),确保编译器知道访问哪个类型,例如,类Name同时存在于A.B.C和A.B.D命名空间中,如果新建一个Test类需要使用类Name,如: /* using A.B; class Test{ public static int Main(){ C.Name test=new C.Name(); return 0; } } */ 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
//@这三种方式都是强制把内容转换为整数,但他们之间是有区别的,如下: /* 一 、(int) 适合简单数据类型之间的转换,C#的默认整型是int32(不支持bool型)。 二 、 int.Parse(string sParameter) 是个构造函数,参数类型只支持string类型,Parse就是把String类型转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string类型。 三 、 Convert.ToInt32() 适合将Object类型转换为int型;Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string)。 四 、Convert.ToInt32()和int.Parse()对于空值(null)的处理不同,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。 五 、对于 数字的精确 度不同: (1)、Convert.ToInt32(double value) 如果 value 为两个整数中间的数字,则返回二者中的偶数,即 4.5 转换为 4,而 5.5 转换为 6。 (2)、int(4.6) = 4,int转化其他数值类型为int时没有四舍五入,强制转换(截取整数部分)。 */ 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
using System; using System.Collections.Generic; using System.Text; namespace projAboveAvg{ namespace A.B{ class Program { static void Main(string[] args) { Console.WriteLine("###"); int name1 = Console.Read();//返回int(ascii码)类型,只接受一个字符 string name2 = Console.ReadLine();//返回string类型 Console.WriteLine("###"); Console.WriteLine("1、{0}", name1); Console.WriteLine("2、{0}", name2); Console.ReadKey();//吸收一个字符或功能键并显示打印台 } } } } /* 1)注释:组合键“Ctrl+K+C”; 2)取消注释:组合键“Ctrl+K+U”。 3)删除当前行代码:Ctrl+L 4)代码提示:Ctrl+右方向键,Ctrl+J */ 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】查看全部
-
《C#的算术运算符: ++ 和 --》 ++,叫做自加运算符。比如你今年18岁,明年长了一岁,用代码写出来是这样: int age=18;//今年18岁 age=age+1;//明年,在今年的年龄上加1岁 也可以写成这样: int age=18;//今年18岁 age++;//明年,在今年的年龄上加1岁 age++;与age=age+1;作用相同,都是变量的值+1。 --,叫做自减运算符。同理,你今年18岁,用了XX护肤水以后,明年变成17岁了,可以这样写: int age=18;//今年18岁 age--;//等同于 age=age-1; 另外,age++;与age--;也可以写作++age;或--age; 但请注意:如果与其他运算在同一语句中,++写在变量前面或后面,算法不一样,请看下例: Console.WriteLine(age++);作用等同于下面两句: Console.WriteLine(age);//先打印 age=age+1;//后自加 Console.WriteLine(++age);作用等同于下面两句: age=age+1;//先自加 Console.WriteLine(age);//后打印 你看,运算顺序不一样吧,所以输出的结果也不会相同。查看全部
-
《C#的算术运算符 - 取余运算符》 Console.WriteLine(19/5);//求19除以5的商,输出3 Console.WriteLine(19%5);//求19除以5的余数,输出4(商3余4) 编程中,%常常用来检查一个数字是否能被另一个数字整除。比如下面的代码片段: int number = 29; Console.WriteLine(number%2);//求number除以2的余数 如果输出0,表示没有余数,即number能够被2整除(是偶数);如果输出1,表示有余数,即number不能被2整除(是奇数)。查看全部
-
《C#的算术运算符(一)》 加:+ 。加号有2个用途:当用加号连接两个数字时,会计算出这两个数字的和。比如: Console.WriteLine(9+2.2);//输出11.2 另一种情况,当加号两边包含字符串的时候,会把两边的表达式连接成新的字符串。比如: Console.WriteLine(9+"2.2");//输出92.2,因为"2.2"是字符串,所以9也被转换为"9",+起的作用是连接字符串 减:- 。减号的作用就是减法。比如: Console.WriteLine(15-23);//输出-8 乘:* 。乘号的作用是求2数的乘积。比如: Console.WriteLine(0.8*3);//输出2.4 除:/ 。除号的作用是求2数相除的商。比如: Console.WriteLine(2/0.5);//输出4.0 但是,2个整数相除,结果仅保留整数部分,小数部分会被舍去。 Console.WriteLine(5/10);//输出0查看全部
-
《C#的类型转换》 自动类型转换:2种不同类型的数据运算,低精度类型会自动转换为较高精度的类型。 以3.5+8为例,显然数字8的精度较低(int),而3.5的精度较高(double),所以,8会自动转换为double型,即转换为3.5+8.0进行运算,结果为11.5。 请看这个例子:double d=2; 2的精度显然低于变量d的精度,所以2会自动转换为2.0然后赋值给d。 再看这个例子:int i=3.0;变量i的精度低于3.0,但是由于i已经声明为int型的变量,变量的值可以变,但变量的类型可不能变来变去的,所以这条命令会出错的。 强制类型转换:无法自动转换为我们需要的类型,可以用强制类型转换,比如上例可以这样完成: int i=(int)3.0; 数字前面的(int)表示转换的目标类型为int,3.0会被强制转换为3。 需要注意, double 型强制转换为int型将失去小数部分,比如(int)2.8,我们得到的将是2查看全部
-
《C#的数据类型》 字符类型 char ,存储用 '' (单引号)括起来的一个字符,例如: char sex='男';//存储性别 字符串类型 string ,存储用“”(双引号)括起来的一串字符,例如: string address="北京市宣武区牛街北口";//存储地址 整数类型 int ,存储整数,例如: int age=23;//存储年龄 双精度浮点型 double ,存储小数,例如: double salary=7991.63;//存储工资查看全部
-
字符类型 char 字符串类型 string查看全部
-
如上例,循环条件是x<=10,筛选条件是x%2==0。初学者常见的错误是把 2 个条件都写在循环条件里,比如把循环条件写成 x<=10 && x%2== 0 ,请注意甄别:循环条件必须能够遍历每一个数据,如果你写的循环条件会漏掉某些数据,或者循环没有能够正常运行,请检查是不是把筛选条件也写在循环条件里了。查看全部
-
在一个循环体中包含另一个循环,称为“嵌套循环”。当2个循环嵌套的时候,外层循环体执行一次,内层循环体执行 n 次( n 是内层循环的次数)。查看全部
-
break 关键字还可以用在循环中,作用是“结束循环”。查看全部
-
C#的赋值运算符: 前面,已经学过一个赋值运算符“=”,此次学习一下其它的赋值运算符: 加赋值“+=”:先加后赋值。例: int x=5; x+=2;//这句等同于x=x+2;执行后,X的值为7 减赋值“-=”:先减后赋值。例: int x=5; x-=2;//这句等同于x=x-2;执行后,x的值为3 乘赋值“*=”:先乘后赋值。例: int x=5; x*=2;//这句等同于x=x*2;执行后,x的值为10 除赋值“/=”:先除后赋值。例: int x=5; x/=2;//这句等同于x=x/2;执行后,X的值为2 取余赋值“%=”:先取余后赋值。例: int x=5; x/=2;//这句等同于x=x%2;执行后,x的值为1 与其它运算符从左向右计算不同,赋值运算符从右向左计算。查看全部
-
1. char是字符类型 2. string是字符串类型 虽然一字之差,但其本质是很大的。 1. char属于基础类型(C++),在C#中它属于值类型(Value Type)。char类型的长度是固定的,上一篇讲到,在C++中它可能是1个字节,或者2个字节(取决于是否为Unicode Char),而在C#中,它永远是2个字节。 2. string是一个模板类型,也就是一个class(C++)。在C#中它属于引用类型(Reference Type)。string的长度是无法明确取得的。也就是无法通过sizeof来取得,因为它不是一个基础类型,它本身并不固定长度,而取决于内部包含的 字符。 说完了本质区别,我们再来看一下从用户角度来看 1. char类型:用单引号,例如:‘陈’,’A’ 要表示多个字符怎么办?那么就用char[],也就是数组 【注意】如果在C++中,将’陈’赋值给一个char类型,而不是wchar_t类型,会有问题,因为汉字是两个字节的,char是一个字节的。 2.string类型:用双引号,例如:”我是陈希章”查看全部
举报
0/150
提交
取消