代码之家  ›  专栏  ›  技术社区  ›  arachide

调用另一个类(c)中的函数

  •  0
  • arachide  · 技术社区  · 4 年前

    我正在尝试将我的一个macOS应用程序迁移到Windows UWP。

    我需要调用另一个类中的函数

    namespace MyApp
    {
        public sealed partial class MainPage : Page
        {
            public bool isOk;
            public MainPage()
            {
                
    
            }
            public void doSomething(){
    
            };
            /*
            public static void doSomething(){
    
                isOk=false;// isOk is inaccessible
    
            };*/
        }
    
        public sealed partial class AnotherPage : Page
        {
            
    
            public AnotherPage()
            {
                 //call doSomething() in MainPage
    
            }
        }
    
      
    }
    

    在objective-c中,通过协议(接口)实现这一点非常容易

    但在c中,接口的机制不同于objective-c协议。

    当然,我可以使用下面的代码

    MainPage mainPage=new MainPage();
    mainPage.dosomthing();
    

    但我想知道这对与XAML文件相关的Page对象是否有效。

    或者在另一个类中调用函数有一个常见的用法?

    欢迎您的评论

    0 回复  |  直到 4 年前
        1
  •  0
  •   Michael Puckett II    4 年前

    注意:这是对您问题的回答,但从设计角度来看,这是不好的。

    您需要引用实例化的主页。我确信框架中有一个,但例如,为了便于理解,让我们创建一个公共静态类来保存这个引用。

    public static class Global
    {
        public static Page MainPage { get; set; }
    }
    

    现在,在MainPage构造函数中,将自身赋值给静态Global类的此属性。

    public MainPage()
    {
         Global.MainPage = this;
    }
    

    现在,您可以从任何其他页面访问它。

    public AnotherPage()
    {
         Global.MainPage.doSomething();
    }