C#学习笔记(二)

原创 2004年09月11日 16:10:00

2004/09/11早上办公室
接上页
4.4 调用方法
每种方法必须要有返回值,没有返回值的,返回类型VOID,参数可选
例子:
double a(float n)
{
 return n*n;
}
调用方法的办法是:使用其名称使用必要的变量将返回的值保存
public static void Main()
{
 double d = a(3.0f);
 Console.WriteLine(d);
}
static double a(float n)
{
 return n*n;//FLOAT之间的运算结果是DOUBLE
}
不在创建对象的情况下调用方法使用STATIC
变量如何传递给方法取决于他们是数值类型还是引用类型,如果一个方法的变量是一个数值类型表示变量的复制被传递给函数,引用类型被传递的内容是真实对象的本身,在方法中的任何改变都会对对象有影响
C#中有两个办法实现引用类型REF和OUT
用REF做标志表示对他的值所做的修改都会长期的保留

4.5 处理程序错误
如果程序不处理异常回导致程序终止
他们不必在程序发生错误的地方处理异常,
当传递回来的返回值不可用的时候就使用他们比如数组的越界,标志一个错误可以使用throw语句抛出异常
如果处于TRY的程序执行出现错误,就仅执行CATCH的程序快,如果什么也没有发生就跳过程序,用户不能跳过TYR也不能从离开的位置返回继续运行程序

4.5.1 finally
try 程序块可以带有一个与之相关的FINALLY的程序快,是在CATCH之句中任何异常都被扑捉后执行,使用break,continue,return,goto,将控制从程序快中转出来都是错误的,

4.5.2 异常类
都是继承System.Exception,
SystemException
AccessException

4.5.3 检查和未检查

4.6控制台I/O
Console.In 标准输入
Console.Out 标准输出
Console.Error 标准错误

4.6.1 控制台输入
Console.In有两个方法可以输入。Read()返回单字符作为INT,如果找不到字符就返回-1,ReadLine()返回包含下一行输入的字符串,如果找不到输入行就返回NSULL
4.6.2 控制台输出
Console.Write 有两个相匹配的方法输出,WriteLine带有换行符
Write和WriteLine有许多重载的方法,可以不同类型的数据
4.7 名字空间
名字空间提供了对类分组的方法,相关的类可以在名字空间中编制在一起,可以在一些大型的应用中提供帮助,有两个方法可以访问这些类
第一,使用完全的受限名称,第二,用USING指令
也可以使用别名
using BankAccount = Finance.Bank.Account
using InsuranceAccount = Finance.InsuranceCo.Account

第五章 面向对象的编程

5.1 结构
在C#中结构仅仅是复合的数据类型,由其他的许多数据类型组成,用STRUCT的关键字组成
struct Point
{
 Public int x;
 Public int y;
}

组成结构的变量叫做结果的成员也叫域,可以用简单的点表示法来访问
Point p1;
p1.x = 10;
p1.y = 10;
Console.WriteLine("{0},{1}",p1.x,p1.y);
可以嵌入对结构的引用
struct Inner
{
 public int a;
 public int b;
}
struct Outer
{
 public Inner i;
 public int x;
}
Outer o;
o.i.a = 3;
o.x = 4;

5.2 枚举
枚举是一组被命名的整数常量组成的数据类型

5.3 类
类是OO编程的核心
OO编程的优点:
黑箱开发和测试,OO编程使得用户在类中连遍数据和功能,访问的限制可以使的一些用户得到他要的功能,其他功能艰险在内部使用,正常的完成这些功能之后可以创建软件的黑箱
可以重复的使用
强健性

5.3.1 常量和只读成员
public class Account
{
 public readonly string sortCode;

 public Account(string code)
 {
  sortCode = code;
 }
}
readonly修饰符,规定成员有自己的值,他的值只能社顶一次,之后变成只读
5.3.2 this引用
public class Point
{
 int x;
 int y;
 public void SetX(int x)
 {
  this.x = x;
 }
}

5.3.3 构造程序和析构函数
构造函数构造类类型的对象时被调用的通常用于初始化
有如下特征,跟类有相同的名字
没有返回的类型
没有返回值
5.3.4 析构函数
析构函数在程序中多的不多
public class Test
{
 private int n;
 public Test()
 {
  n = 0;
 }
 ~Test()
 {
  //tidy up
 }
}
5.3.5 静态成员
每个静态成员属于类,不管实例是否存在他们都应该是存在的
5.4 继承
当类从父类继承时,他也继承了父类的成员,这就允许我们构件和扩展现在的类
publci class CheckAccount : Account
{

}
c#仅允许单一继承。当用户需要从多个基类中继承是要使用接口,不能实现多重继承
也可以洋基类引用他
CheckAccount s1 = new CheckAccount();
Account a1 = s1;

5.4.1 访问基类成员
可以用BASE关键字来访问基类的成员

5.4.2 受保护的访问
protected 他限制对定义类本身的访问和对任何从其中派生的类访问
5.4.3 对.NET装配件的内部访问

5.5对象类
Object类是所有类的基类,有些方法都是所有类型都要继承的,可以提供很实用的功能
ToString()
Equals();
GetHashCode();
GetType();

public Person
{
 String name;
 public override string Tostring() //覆盖基类的方法
 {
  
 }
}
5.5.3 接口
interface IPrintable
{
 void Print();
}
接口的定义象类定义,但是只定义方法,不实现他们,只能包含方法,属性,以及事件和索引
从类继承和接口继承这两者之间的区别是必须实现在接口定义的所有成员
使用接口可以实现类似多重继承的功能,虽然用户只能从一个类中继承,但是可以从任意多个接口总继承
接口更重要的用法是描述行为
5.5.4 属性
由于数据完整性的隐含问题使类用户可以公共访问数据成员,这是不好的编程习惯,OO用获取和设置的方法访问数据成员
public class Test
{
 private int val;
 public void setval(int v)
 {
  val = v;
 }
 public void getval()
 {
  return val;
 }
}
C#可以通过构件语言中的获取和设置来访问数据成员,就是属性的形式
public class Test
{
 private int val;
 public int val
 {
  get
  {
   return val;
  }
  set
  {
   val = value;
  }
 }
}
使用属性
Test test1 = new Test();
test1.val = 10;
int i = t.val;

[持续更新]JavaScript学习笔记(二)

1.变量作用域 这个是个重点,也是前端考察的要点。 一个变量的作用域(scope):是程序员代码中定义这个变量的区域。 这是JavaScript权威指南第六版中对作用域的定义。简单的来说:一个变量定义...
  • u014267351
  • u014267351
  • 2015-08-12 22:11:55
  • 407

SpringMVC学习笔记(二): 日常使用功能

七、@RequestBody 和 @ResponseBody (一)@RequestBody: 1、作用: 1)该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMes...
  • u012228718
  • u012228718
  • 2015-01-27 22:43:19
  • 1298

C#自学中总结的学习学习笔记(二)

  • 2010年10月16日 21:40
  • 29KB
  • 下载

比特币源码学习笔记(二)

第二章 本章继上一章交易创建之后介绍比特币客户端序列化数据的过程。 比特币客户端所有的序列化函数均在serliaze.h中实现。其中,CDataStream类是数据序列化的核心结构。 CDataStr...
  • g2com
  • g2com
  • 2017-03-22 07:57:55
  • 2091

imos学习笔记二 用户登录c#

用户登录   ///         /// 多用户登录方法         ///         /// 用户名         /// 密码         /// 服务器的ip      ...
  • retacn_yue
  • retacn_yue
  • 2016-02-03 11:38:22
  • 722

cmake学习笔记(五)

在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西。但靠这些知识还是不能看懂PySide使...
  • dbzhang800
  • dbzhang800
  • 2011-04-22 12:05:00
  • 8264

C++/GDI+ 学习笔记(二)——几个例子

 1.     第一个例子——“Hello World!”第一个最经典的例子当然是Hello World了:)  Graphics...
  • eplanet
  • eplanet
  • 2007-10-09 09:25:00
  • 4691

《HTTP权威指南》学习笔记(二)—URL和资源

URL与资源 URL是互联网资源的标准化名称 1.浏览互联网资源 URL是浏览器寻找信息时所需的资源位置 URI是一类更通用的资源标识符,URL是它的子集。 URI的两个...
  • qq_29864185
  • qq_29864185
  • 2016-12-15 10:49:02
  • 186

MFC学习笔记(二)处理命令行选项

目标让应用程序处理这里所见的命令行标志。>XXX.exe /c /d策略一个MFC应用程序可以用CCommandLineInfo类的成员函数ParseParam()处理一些标准标志。要添加我们自己的标...
  • birdme007
  • birdme007
  • 2007-04-11 13:41:00
  • 5368
收藏助手
不良信息举报
您举报文章:C#学习笔记(二)
举报原因:
原因补充:

(最多只允许输入30个字)