正在阅读:由C++转向C#需要注意的变化(一)由C++转向C#需要注意的变化(一)

2004-11-17 09:59 出处:CSDN 作者:AustinLei 责任编辑:linjixiong


  publicclassTester
  {
  publicstaticvoidMain()
  {
  //创建类的实例
  Testert=newTester();
  //调用非静态成员
  //(mustbethroughaninstance)
  t.Run();
  }
  //演示调用ToString的非静态方法
  publicvoidRun()
  {
  EmployeemyEmployee=newEmployee();
  CountermyCounter=newCounter(12);
  Console.WriteLine("Theemployee:{0},thecountervalue:{1}",
  myEmployee,myCounter);
  intmyInt=5;
  Console.WriteLine("Herearetwointegers:{0}and{1}",17,myInt);
  }
  }

  引用型参数和输出型参数

  与C++中相同,C#中的方法也只能有一个返回值。在C++中,我们通过将指针或索引作为参数而克服了这个限制,被调用的方法改变其中的参数,调用方法就可以得到新的值了。

  向方法中传递一个索引作为参数时,只能严格地按传递索引或指针所能够提供的方式访问原来的对象。对于值类型变量而言,就不能采用这种方法了。如果要通过引用型参数传递值型变量,就需要在其前面加上ref关健字。如下所示:


  publicvoidGetStats(refintage,refintID,refintyearsServed)

  需要注意的是,既需要在方法的定义中使用ref关健字,也需要在对方法的实际调用中使用ref关健字。


  Fred.GetStats(refage,refID,refyearsServed);

  现在,我们可以在调用方法中定义age、ID和yearsServed变量,并将它们传递给GetStats,得到改变后的值。

  C#要求明确的赋值,也就是说,在调用GetStats方法之前,必须对age、ID和yearsServed这三个局部变量进行初始化,这一工作似乎有点多余,因为我们仅仅使用它们从GetStats中得到新的变量的值。为了解决这一问题,C#提供了out关健字,表示我们可以向方法中传递没有被初始化的变量,这些变量将通过引用变量的方式进行传递:


  publicvoidGetStats(outintage,outintID,outintyearsServed)

  当然了,调用方法也必须作出相应的变化:


  Fred.GetStats(outage,outID,outyearsServed);



察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品