2017-02-10 51 views
0

問題:C和C#之間的接口,都應該使用相同的枚舉值。如果事情正在改變,手動轉換會造成問題。TT c-> c#Ho處理typedef枚舉

Therfeore我們嘗試使用tt模板進行對話。

問題:我不知道如何在tt中轉換typedef枚舉。

typedef enum{ 
    val1=0, 
    val2, 
}enumName_eTypeDef; 

隨着枚舉我只是一行一行地複製。

if (def.StartsWith("enum")) 
    { 
#> 
     public <#=def#> 
    <# 
     while (defines.Peek() >= 0) 
     { 
      string def1 = defines.ReadLine(); 

      def1 = def1.Trim(); 
    #> 
      <#=def1#> 
    <# 
      if(def1.StartsWith("};")) 
      { 
    #> 
    <# 
      break; 
      } 
     } 
    } 

但我怎麼會這樣做與typedef枚舉來獲得「enumName_eTypeDef」?

+1

什麼是「tt模板」? – sab669

+0

您是否嘗試過使用C++/CLI? –

+0

T4文本模板,請參閱https://msdn.microsoft.com/en-us/library/bb126445.aspx – Offler

回答

0

對於這兩者之間的接口,我預計只需要有限數量的枚舉,因此您可以用C中的#define s替換那些,並在C#中等效。然後你確信他們是一樣的。

+0

嗨保羅,問題是使用T4文本模板替換(https://msdn.microsoft.com /en-us/library/bb126445.aspx)。有一些枚舉約有80個條目可以更改,因此應該使用自動化機制。這兩個枚舉都用於簡單切換的情況 - 所以定義並不是真正的解決方案 – Offler