none
空結構的寫法, 請問在C#中該如何修改? RRS feed

  • 一般討論

  • 最近接到的案子中, 有用到一個大概是10年前的DLL (C/C++)

    其中有一段CODE為

    struct PenBox pb = GetPenBox();

    SetPenBox(pb);

     

    以我淺薄的了解, 結構應該都要有欄位, 而該語法看起來像是宣告一個空的結構當成Point 在使用?

    請問在C#中, 該如何改寫呢?

     

    感謝 :)

    2011年5月25日 上午 02:58

所有回覆

  • 會不會是 GetPenBox() 這個方法會回傳一個 型別為PenBox的結構呢 ?
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年5月25日 上午 03:07
    版主
  • 是的, 照手冊上來說是要用 GetPenBox來得到一個結構

    不過搞不懂運作原理

    結構是要透過定義欄位, 才能決定宣告時所佔的記憶體空間

    像這種做法, 回傳出來的值 在C# 會以什麼方式呈現呢?

     


    2011年5月25日 上午 03:15
  • 我記得結構裡面的欄位不也是實質型別嗎?如果是這樣他就依照型別覺得就好了啊,因為實質型別沒有NULL值不是嗎?
    2011年5月26日 下午 04:53
  • C#的struct在概念上與C/C++的struct類似, 都可以直接用來宣告變數並使用之
    2011年5月27日 上午 02:30
  • 結構內沒有宣告任何欄位, 所以才覺得很奇怪的用法..
    2011年5月28日 上午 03:40
  • 沒有看到結構的原始宣告?
    2011年5月28日 下午 04:50
  • 整個 H 檔內就只有

    struct PenBox GetPenBox(); 這個宣告, 對PenBox沒有任何說明

     

     

     

    2011年5月29日 上午 05:56
  • srtuct PenBox在語法上是型態, 所以應該在其他的地方要有定義
    2011年5月30日 上午 03:18
  • 我可以肯定在原始的 H檔內沒有定義

    這幾天有找到資訊(口頭問)

    這種寫法很少很少出現, 目的是在做類似加密的動作

    看來是種很小眾的用法了 (攤手)

     

    感謝各位 MVP大大的熱心回答 :D

     

    2011年5月31日 上午 04:36
  • 應該是說, 如果您只在.H中做以下的宣告:

    struct PenBox GetPenBox(); 

    程式中沒有任何地方用到GetPenBox方法, 專案是可以建置成功, 但是只要任何地方呼叫GetPenBox方法, VC++就會告訴你struct PenBox型態未定義

    2011年6月1日 上午 03:43
  • 這就不清楚了..我手上只有C# VC不會用 <囧"
    2011年6月1日 上午 04:23