[英]How to access properties of generic base class's parameter in C#?
我有一个通用类PopupDialog
,它具有诸如bool IsBackDismissEnabled
类的属性。 这用于表示按下后退按钮是否会关闭对话框。
我正在使用 Xamarin.CommunityToolkit Popup 来显示弹出对话框。
这是我的 PopupDialog.cs
public class PopupDialog
{
public bool IsBackDismissEnabled { get; set; }
}
这是我的对话框实现
using Xamarin.CommunityToolkit.UI.Views;
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ForgotPasswordDialog : Popup<PopupDialog>
{
public ForgotPasswordDialog()
{
InitializeComponent();
// I want to access IsBackDismissEnabled here
// something like base.IsBackDismissEnabled = true;
}
}
我想从Popup<PopupDialog>
的派生类访问PopupDialog
的IsBackDismissEnabled
怎么办?
简而言之,我有一个类被指定为泛型类的参数。 并且该泛型类派生在一个类中,我想从该类中访问指定为泛型类参数的先前类的属性。
我从未见过有人试图做你正在尝试的事情。 我什至不确定这是否合乎逻辑。 请解释您要做什么:您为什么希望PopupDialog
成为generic parameter
?
考虑将其作为Popup
构造函数的参数,并将其保存在属性或字段中:
public class Popup
{
public Popup(ISomeInterface myParam)
{
this.MyParam = myParam;
}
public ISomeInterface MyParam;
}
public class ForgotPasswordDialog : Popup
{
public ForgotPasswordDialog() : base(new PopupDialog())
{
}
void SomeMethod()
{
// Access MyParam
... this.MyParam.IsBackDismissEnabled ...
}
}
public interface ISomeInterface
{
bool IsBackDismissEnabled { get; set; }
}
public class PopupDialog : ISomeInterface
{
public bool IsBackDismissEnabled { get; set; }
...
}
/// Usage
var myVariable = new ForgotPasswordDialog();
... myVariable.MyParam.IsBackDismissEnabled ...
为了有用,您需要指定MyParam
具有的interface
或base class
。 这里我展示ISomeInterface
。 这可能是PopupDialog
的一些基类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.