簡體   English   中英

C#中的類庫

[英]Class Library in C#

我試圖創建在C#中的winforms應用程序中使用的類庫。

在我的應用程序中,我從文本框中輸入內容,並通過按鈕單擊來使用一個參數(從文本框中)實例化事件。 我試圖用此參數創建一個構造函數-但無濟於事。 看來,如果我只是將一個類添加到現有項目中,則可以執行此操作,但是在引用類庫時則不能。

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

如果新的類庫位於單獨的C#項目中,則需要在WinForms應用程序中設置對該項目的引用,然后才能使用該類。

當然,我正在嘗試在您原始帖子的兩行之間閱讀。 聽起來您知道如何使它工作,而不僅僅是在單獨的項目中定義了類時才知道。 如果我誤解了,請提供更多信息。

尚無足夠的網站經驗來支持自己或發表評論,但DRapp的回答解決了我的問題。 由於最初的問題有點含糊,所以我想詳細介紹一下我看到的內容:

我正在用C ++編寫一個Metro應用程序,該應用程序引用了用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...
    }
}

沒有更多的例外。 :)

聽起來您沒有兩個構造函數...(已超載)您的類,例如

public class YourClass
{
   public YourClass()
   {
   }


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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM