c#经典入门学习笔记-定义类成员
来源:互联网 发布:java ftp上传文件卡死 编辑:程序博客网 时间:2024/06/08 08:01
基本语法部分:
成员的访问级别确定成员的使用范围,常用下面的关键字:
public--成员可以由任何代码访问
private--只能由类中的代码访问
internal--只能由定义它的项目内部的代码访问
protected--成员只能由类或派生类中的代码访问
字段的定义:class myClass{ public int MyInt } 如果该属性是只读的,就需要加关键字 readonly,加了该关键字之后,只能在构造函数内为其赋值。
方法的定义:方法在定义时使用标准函数的格式,static为可选修饰符来声明。class myClass{ public string GetString() { return "Here is a string." } }。在定义方法时,使用的关键字可以有以下几个:
virtual--方法可重写
abstract--方法必须在非抽象的派生类中重写(只用于抽象类中)
override--重写一个基类方法
extern--方法定义放在其他地方
属性的定义:属性在定义时,格式跟字段类似,但与之不同的是有get 和set语句块用来获取属性值。
语法为:public int MyIntProp{ get { } set { }}
如:public int MyIntProp{
get { return value; }
set { MyIntProp=value; }
}如果,希望可以对值进行测试就需要加判定语句如:
set{
if(value>=0 && value<=10){ myInt=value; }
else{throw(new ArrgumentOutOfRangeException("MyIntProp",value,"MyIntProp must be assingned a value between 0 and 10"}//此处加了一个抛出一个错误的语句。
}
接口:先来看下如何定义接口
interface IMyInterface{//Interface memebers}
看起来接口与类成员定义相似,但与之相比有以下区别:
不允许使用访问修饰符,因为接口是公共的.
接口成员不能包含代码体
接口不能使用关键字
类型定义成员是禁止的
如果要隐藏继承了基接口的成员,可以使用new关键字来定义它们.
例如:
interface IMyBaseInterface{
void DoSomething();
}
interface IMyDerivedInterface:IMyBaseInterface
{new void DoSomething()}
接下来是在类中实现接口:
public interface IMyInterface
{
void DoSomething();
void DoSomethingElse();
}
public class MyClass:IMyInterface
{
public void DoSomething(){}
public void DoSomethingElse(){}
}
如下示例:
建立一个class1.cs的文件,该文件代码如下:
public class MyClass
{
public readonly string Name;
private int intVal;
public int IntVal
{
get { return intVal; }
set { intVal = value; }
}
public int val
{
get
{
return intVal;
}
set
{
if (value >= 0 && value <= 0)
intVal = value;
else
throw (new ArgumentOutOfRangeException("val", value, "Val must be assigned a value between 0 an 10!"));
}
}
public override string ToString()
{
return "Name:" + Name + "/nVal:" + val;
}
private MyClass()
: this("Default Name")
{
}
public MyClass(string newName)
{
Name = newName;
intVal = 0;
}
}
再建立一个class2.cs的文件:
namespace ConsoleApplication1
{
public class MyBaseClass
{
public virtual void Dosomething()
{
Console.WriteLine("Base imp");
}
}
public class MyDerivedClass : MyBaseClass
{
new public override void Dosomething()
{
Console.WriteLine("DerivedClass imp");
}
}
}
主文件为:namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("creating object myobj..");
MyClass myobj = new MyClass("My Object");
Console.WriteLine("myobj created");
for (int i = -1; i <= 0; i++)
{
try
{
Console.WriteLine("/nAttempting to assign{0} to myobj.val..", i);
myobj.val = i;
Console.WriteLine("Value {0} assigned to myobj.val", myobj.val);
}
catch (Exception e)
{
Console.WriteLine("Exception {0} thrown.", e.GetType().FullName);
Console.WriteLine("Message:/n/"{0}/"", e.Message);
}
}
Console.WriteLine("/noutputing myobj.Tostring()...");
Console.WriteLine(myobj.ToString());
Console.WriteLine("myobj.Tostring() output.");
MyBaseClass myobj2 = new MyBaseClass();
myobj2.Dosomething();
Console.ReadKey();
}
}
}
- 《C#入门经典》学习笔记(定义类成员)
- c#经典入门学习笔记-定义类成员
- C#入门经典学习10-定义类成员
- 《C#入门经典》第六版 学习笔记之第十章 定义类成员(1) 10.1成员的定义~10.2类成员的其他方法
- c#经典入门学习笔记-定义集合
- c#经典入门学习笔记-定义集合
- 《C#入门经典》学习笔记(定义类)
- 《C#入门经典》第六版 学习笔记之第十章 定义类成员(1) 10.3 接口的实现~10.5 部分类方法定义
- C#学习笔记-定义类成员
- C#入门经典学习9-定义类
- 《C#入门经典》第六版 学习笔记之第九章 定义类
- C#学习笔记(五):类成员的定义
- c#经典入门--学习笔记
- c#经典入门--学习笔记
- 《C#入门经典》学习笔记(变量)
- 《C#入门经典》学习笔记(函数)
- 《C#入门经典》学习笔记(泛型)
- C#入门经典学习笔记之数据类型
- 八年成就开发梦——IT精英中的活雷锋郭红俊
- 工作进度
- javascript 中的捕获异常
- 水晶报表的制作
- fd最大值和限制
- c#经典入门学习笔记-定义类成员
- 巴格达人民感谢中国城管
- 跨平台GUI软件开发
- 如何进行网站布局
- 开博第一句
- 牵挂与铭记
- 手机SNS:下一个“金矿”?
- 寻找一份今生的爱
- ASP.NET刷新页面的六种方法