熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

正確理解C#中的關鍵字[3]

2013-11-13 11:02:12  來源: .NET編程 

  //

  // MyClass definition

  #pragma once

  class MyClass

  {

   public:

   int Value;

  };

  typedef MyClass* MyClassPtr;

  //

  // Tester methods

  void TestRef(char* i)

  {

   *i = b;

  }

  void TestNoRef(char i)

  {

   i = c;

  }

  void TestRef(MyClassPtr* m)

  {

   (*m)>Value = ;

  }

  void TestNoRef(MyClassPtr m)

  {

   m>Value = ;

  }

  void TestCreateRef(MyClassPtr* m)

  {

  delete (*m);

  *m = new MyClass();

  (*m)>Value = ;

  }

  void TestCreateNoRef(MyClassPtr m)

  {

   m = new MyClass();

  m>Value = ;

  }

  int main(int argc char* argv[])

  {

   char c = a;

   TestRef(&c);

  printf(%c\n c); // output: b

  TestNoRef(c);

   printf(%c\n c); // output: b

   MyClassPtr m = new MyClass;

   m>Value = ;

  TestRef(&m);

  printf(%d\n m>Value);

   TestNoRef(m);

   printf(%d\n m>Value);

   TestCreateRef(&m);

  printf(%d\n m>Value);

   TestCreateNoRef(m);

   printf(%d\n m>Value);

   delete m;

   return ;

}

 

這兩段分別用 C# C++ 實現的代碼的輸出結果都是一樣的後面用 MyClass 測試的輸出結果是

 

  

  

  

 

  具體的原因相信經過大家的分析應該會很清楚的另外如果大家有興趣可以用 structs 再試試也可以同時對 structs C++ C# 中的區別有進一步的認識

[]  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15038.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.