2010-07-06 17 views
0

我試着創建一個正在C#中使用winforms應用程序的類庫。C類中的類庫#

在我的應用程序中,我從文本框中輸入內容,然後通過按鈕單擊我使用一個參數(從文本框)實例化我的事件 。我試圖用 這個參數創建一個構造函數 - 但無濟於事。看來,如果我只是添加一個類是存在的 項目我可以做到這一點,但不是在引用類庫時。

只是想找到一種方法來使用類庫 中的一個參數構造函數。請幫忙。 (這在邏輯上可能不起作用,因爲當我參考 類庫時 - 實際上是在原始程序集之外 - 但也許......)

+2

我沒有看到你想要做什麼的問題。你是否在你的代碼和實例化類的庫之間使用了一些東西,並且需要一個默認構造函數?你可以發佈一些代碼嗎? – spinon 2010-07-06 18:37:16

+2

「無效」:錯誤是什麼? – Blorgbeard 2010-07-06 18:37:23

+2

慢下來,幫助我們幫助你。 – ChaosPandion 2010-07-06 18:37:55

回答

3

如果您的新類庫在單獨的C#項目中,則需要設置在您可以使用該類之前,從WinForms應用程序引用該項目。

當然,我試圖讀你原來的帖子的行。這聽起來像你知道如何使它工作,而不是當班級在一個單獨的項目中定義時。如果我誤解了,請提供更多信息。

0

這聽起來像你沒有兩個構造...(重載)爲您的類如

public class YourClass 
{ 
    public YourClass() 
    { 
    } 


    public YourClass(String OneParameter) // this OVERLOADS the default No parameter one 
    { 
     DoWhatever with your OneParameter... 
    } 
} 
1

沒有足夠的現場經驗,給予好評或評論自己還,但DRapp的答案固定我的問題。由於原來的問題有點含糊,我想我會詳細說明我看到的更多:

我正在用C++編寫一個引用C++類庫的地鐵應用程序。創建從C#模塊導出的對象工作正常,除非它們的構造函數有參數。

// C# file exported to .winmd class library for use in metro app 
namespace A 
{ 
    public sealed class B 
    { 
     public B(bool bTest) 
     {} 

     // Other methods/members... 
    } 
} 

// C++ metro app referencing .winmd created from C# above 
... 

A::B^ spB = ref new A::B(bTest); // Throws an exception 

試圖創建從在C++中C#模塊B類型的對象將拋出異常,具有稍微隱蔽「的WinRT變換誤差」顯示在輸出日誌。

爲了解決這個問題,我能做些什麼DRapp建議,並添加一個默認的構造B:

// C# file exported to .winmd class library for use in metro app 
namespace A 
{ 
    public sealed class B 
    { 
     public B() 
     {} 
     public B(bool bTest) 
     {} 

     // Other methods/members... 
    } 
} 

沒有更多的例外。 :)