习惯了利用Matlab、Bash等面向过程的语言直接对数据或文件操作。由于工作需要,要用到C#语言,什么循环判断以及其它的技术细节都容易理解,但对其面向对象的机制及程序结构比较茫然。网上查了一些资料,有了一个初步的理解,写了一个简单的联系程序,记录如下。
using System;
using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ /*********************************************************************************/ public struct myColor //一个结构体 { public int red; public int green; public int blue; } /***************************************************************************/ public enum manOrWoman {man,woman} //一个枚举/********************************************************************************/ public class Program { static void Main(string[] args) /*Main方法是程序的入口点,C#中必须包含一个Main方法,在该方法中可以创建对象和调用其他方法, 一个C#程序中只能有一个Main方法,并且在C#中所有的Main方法都是静态的。 * Main方法必须是类或者结构的静态方法,并且其返回类型必须是int或void*/ // public:说明Main方法是共用的,在类的外面可以调用整个方法。 /*static:说明方法是一个静态方法,即这个方法属于类的本身而不是这个类的特定对象。 * 调用静态方法不能使用类的实例化对象,必须使用类名来调用。*/ // void:此修饰符说明方法无返回值。 { myColor m; //结构的实例化不用new算符 m.blue=100; m.green=100; m.red=100; Console.WriteLine("第一个结构体" + Convert.ToString(m.blue)); manOrWoman sex = manOrWoman.man; //枚举的实例 switch (sex) { case manOrWoman.man: Console.WriteLine("第一个枚举.{0}",sex); break; case manOrWoman.woman: Console.WriteLine("第一个枚举.{0}", sex); break; } people ren = new people(); //类的实例,后面有people类 Console.WriteLine(ren.Say("I like ", "apple!")); //类的方法 ren.name = "zhangsan"; //类的属性 Console.WriteLine(ren.name); animal dog = new animal(); //类的实例,后面有animal类 Console.WriteLine(dog.GetHashCode());//类的方法,所有的类都继承子object类,也继承了该类的方法,GetHashCode是该类的方法之一 dog.name = "Tiger"; //animal类继承了people类的属性和方法 dog.ID = "9527"; dog.foot = 4; Console.WriteLine("The dog's name is {0}, its ID is {1}. It has {2} foot.{3}{4}", dog.name,dog.ID,dog.foot,dog.Say("I eat ","bones."),dog.eat("OK!")); const double pi = 3.14; myfun(); int num1 = 1, num2 = 2; double num3 = 2 * pi; int[] num = new int[3] { 4, 5, 6 }; Console.WriteLine("Do you like fruite?"+qiuhe(num1,num2)+Convert.ToChar(num[2])); string str = ipt(); if (str == "liulian") { Console.WriteLine("I like liulian too."); } else { Console.WriteLine("I lile " + str); } Console.ReadLine(); } //方法一 static void myfun() { //没有参数与返回值,当作功能方法用 //由Main方法直接使用的方法,需要加static,表示静态方法 //方法定义在类的里面,其他方法的外面 int a = 111; //方法中定义的变量只在该方法中起作用,称为局部变量 Console.WriteLine("Hello World!"+Convert.ToString(a)); } //方法二 static string ipt() { //带有返回值的方法,返回类型由void改为目标类型 Console.WriteLine("Input:"); string str = Console.ReadLine(); return str; //方法结束要有return } //方法三 static string qiuhe(int num1, int num2) { //带有参数的方法 return Convert.ToString(num1 + num2); } } /***************************************************************************/ public class people //构造一个类 { //类的属性 public string name; public string ID; //类的方法 public string Say(string s1,string s2) { return s1 + s2; } }//*/ public class animal:people { public int foot; public int eat(string str) { Console.WriteLine("I eat "+str); return 0; } }}