ac#dllに次のクラスのクラスがあります
public class RequiredTask : Base.BaseObject
{
public string Name { get; set; }
public string Description { get; set; }
public RequiredTask()
: base()
{ }
}
このクラスから継承する
public class BaseObject : IBaseObject, INotifyPropertyChanged
{
public DateTime? UpdatedOn { get; set; }
public string UpdatedBy
public DateTime? CreatedOn
public string CreatedBy
public BaseObject() { }
}
次に、UIはVB.Net Winformであり、このフォームは基本フォームになり、c#ライブラリのすべてのタイプで機能するように汎用的であり、新しいタイプをインスタンス化する必要がある新しいボタンがあります。 Tが何であれ、それをTの編集に使用されるフォームに渡します。
これはフォームコードです
Public Class Search(Of T As Library.Base.BaseObject)
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
If MyBase.OpenFormName <> "" Then App.mfrmMDI.OpenForm(MyBase.OpenFormName, DirectCast(Activator.CreateInstance(GetType(T), New Object()), T))
End Sub
End Class
しかし、タイプ'Library.Production.RequiredTask'のコンストラクターが見つからないというエラーが発生します。到達したとき
DirectCast(Activator.CreateInstance(GetType(T), New Object()), T)