2.6枚举
public enum TimeOfDay{
Morning=0;
Afternoon=1;
Evening=2;
}
例子:
using System;
public enum TimeOfDay{
Morning=0,
Afternoon=1,
Evening=2
}
class EnumExample{
public static int Main(){
WriteGreeting(TimeOfDay.Morning);
return 0;
}
static void WriteGreeting(TimeOfDay timeOfDay){
switch(timeOfDay){
case TimeOfDay.Morning:
Console.WriteLine("Good morning!");
break;
case TimeOfDay.Afternoon:
Console.WriteLine("Good Afternoon!");
break;
case TimeOfDay.Evening:
Console.WriteLine("Good Evening!");
break;
default:
break;
}
}
}
获取枚举的字符串表示:
TimeOfDay time=TimeOfDay.Afternoon;
Console.WriteLine(time.ToString());
从字符串中获取枚举值:
TimeOfDay time2=(TimeOfDay)Enum.Parse(typeof(TimeOfDay),"afternoon",true);
Console.WriteLine((int)time2);
注:Enum.Parse函数有三个参数,一是枚举类型,二是字符串,三是是否忽略大小写。typeof后面再讨论
2.7名称空间
名称空间是一种逻辑组合
名称空间中可嵌套其他名称空间,为类型创建层次结构
常用名称空间结构:
公司名.项目名.部分名
2.7.1 using语句
减少输入过长的名称空间,简单略
2.7.2名称空间的别名
using System;
using Introduction=Wrox.ProCSharp.Basics;
class Text{
public static int Main(){
Introduction::NamespaceExample NSEx=new Introduction::NamespaceExample();
Console.WriteLine(NSEx.GetNamespace());
return 0;
}
}
namespace Wrox.ProCSharp.Basics{
class NamespaceExample{
public string GetNamespace(){
return this.GetType().Namespace;
}
}
}
注:::是名称空间的修饰符
GetType是每个类都有的方法。
2.8 Main方法
2.8.1 多个Main方法
多个编译器会返回错误,但在命令行中用/Main可选择入口
2.8.2 给Main()传递参数
public static int Main(string[] args) 在控制台时输入参数,与JAVA类似略
2.9有关编译C#文件的更多内容
/t:exe 控制台应用程序(默认)
/t:library 带有清单的类库
/t:module 没有清单的组件
/t:winexe Windows应用程序
一个文件A.cs:
namespace Wrox{
public class MathLib{
public int Add(int x,int y){
return x+y;
}
}
}
csc /t:library A.cs
另一文件B.cs:
using System;
namespace Wrox{
class Client{
public static void Main(){
MathLib mathObj=new MathLib();
Console.WriteLine(mathObj.Add(7,8));
}
}
}
csc B.cs /r:A.dll
(今天除晚上外全满课,因此学习少了,有空补上,虽然明天也和今天一样多课,周末多努力吧)
(进度:52页,还有1517-52=1465页,2014.12.3)
public enum TimeOfDay{
Morning=0;
Afternoon=1;
Evening=2;
}
例子:
using System;
public enum TimeOfDay{
Morning=0,
Afternoon=1,
Evening=2
}
class EnumExample{
public static int Main(){
WriteGreeting(TimeOfDay.Morning);
return 0;
}
static void WriteGreeting(TimeOfDay timeOfDay){
switch(timeOfDay){
case TimeOfDay.Morning:
Console.WriteLine("Good morning!");
break;
case TimeOfDay.Afternoon:
Console.WriteLine("Good Afternoon!");
break;
case TimeOfDay.Evening:
Console.WriteLine("Good Evening!");
break;
default:
break;
}
}
}
获取枚举的字符串表示:
TimeOfDay time=TimeOfDay.Afternoon;
Console.WriteLine(time.ToString());
从字符串中获取枚举值:
TimeOfDay time2=(TimeOfDay)Enum.Parse(typeof(TimeOfDay),"afternoon",true);
Console.WriteLine((int)time2);
注:Enum.Parse函数有三个参数,一是枚举类型,二是字符串,三是是否忽略大小写。typeof后面再讨论
2.7名称空间
名称空间是一种逻辑组合
名称空间中可嵌套其他名称空间,为类型创建层次结构
常用名称空间结构:
公司名.项目名.部分名
2.7.1 using语句
减少输入过长的名称空间,简单略
2.7.2名称空间的别名
using System;
using Introduction=Wrox.ProCSharp.Basics;
class Text{
public static int Main(){
Introduction::NamespaceExample NSEx=new Introduction::NamespaceExample();
Console.WriteLine(NSEx.GetNamespace());
return 0;
}
}
namespace Wrox.ProCSharp.Basics{
class NamespaceExample{
public string GetNamespace(){
return this.GetType().Namespace;
}
}
}
注:::是名称空间的修饰符
GetType是每个类都有的方法。
2.8 Main方法
2.8.1 多个Main方法
多个编译器会返回错误,但在命令行中用/Main可选择入口
2.8.2 给Main()传递参数
public static int Main(string[] args) 在控制台时输入参数,与JAVA类似略
2.9有关编译C#文件的更多内容
/t:exe 控制台应用程序(默认)
/t:library 带有清单的类库
/t:module 没有清单的组件
/t:winexe Windows应用程序
一个文件A.cs:
namespace Wrox{
public class MathLib{
public int Add(int x,int y){
return x+y;
}
}
}
csc /t:library A.cs
另一文件B.cs:
using System;
namespace Wrox{
class Client{
public static void Main(){
MathLib mathObj=new MathLib();
Console.WriteLine(mathObj.Add(7,8));
}
}
}
csc B.cs /r:A.dll
(今天除晚上外全满课,因此学习少了,有空补上,虽然明天也和今天一样多课,周末多努力吧)
(进度:52页,还有1517-52=1465页,2014.12.3)