首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C#中访问泛型基类参数的属性?

如何在C#中访问泛型基类参数的属性?
EN

Stack Overflow用户
提问于 2022-07-11 17:02:38
回答 1查看 68关注 0票数 0

我有一个公共类PopupDialog,它具有诸如bool IsBackDismissEnabled这样的属性。这是用来表示是否按下后退按钮将关闭对话框。

我使用Xamarin.CommunityToolkit弹出窗口显示弹出对话框。

,这是我的PopupDialog.cs

代码语言:javascript
运行
复制
public class PopupDialog
{
    public bool IsBackDismissEnabled { get; set; }
}

这里是我的对话框实现

代码语言:javascript
运行
复制
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;
    }
}

我想从派生的PopupDialogPopup<PopupDialog>中访问Popup<PopupDialog>IsBackDismissEnabled,它是如何实现的?

简而言之,我有一个类,它被指定为泛型类的参数。该泛型类派生于一个类中,我希望从该类中访问作为泛型类的参数指定的前一个类的属性。

EN

回答 1

Stack Overflow用户

发布于 2022-07-11 18:27:27

我从没见过有人试图做你想做的事。我甚至不确定这是否合乎逻辑。请解释一下你想做什么:,为什么,你希望PopupDialog成为generic parameter

考虑将其作为Popup构造函数的参数,并将其保存在属性或字段中:

代码语言:javascript
运行
复制
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 ...

要想有用,您需要指定interfaceMyParam所拥有的base class。这里我给ISomeInterface看。相反,这可能是一些PopupDialog的基类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72942155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档