C#中的条件类继承
本文关键字:继承 条件 | 更新日期: 2023-09-27 18:21:07
好吧,我正在为Windows 8.1 Universal开发一个应用程序,手机上有一些PC平台上不存在的API。问题是,如果当前平台是windowsphone,我将尝试有条件地继承一个类。这是我的代码片段(不起作用)
public class Client : IDisposable, IClient
#if WINDOWS_PHONE_APP
, IWebAuthenticationContinuable
#endif
{
#if WINDOWS_PHONE_APP
void ContinueWebAuthentication(WebAuthenticationBrokerContinuationEventArgs args) { }
#endif
public void DoStuff()
{
}
public void Dispose()
{
}
}
每当我试图在视图模型中创建此类的新实例时,我都会收到以下错误:无法创建类型为"App87.ViewModels.MainViewModel"的实例[行:9位置:27]
第9行是我的构造函数,它只创建Client类的一个新实例。
尝试了您的确切代码,只有一件事不起作用:ContinueWebAuthentication
应该标记为public,因为它是从接口继承的:
public interface IClient { }
#if WINDOWS_PHONE_APP
public interface IWebAuthenticationContinuable
{
void ContinueWebAuthentication(WebAuthenticationBrokerContinuationEventArgs args);
}
#endif
public class Client : IDisposable, IClient
#if WINDOWS_PHONE_APP
, IWebAuthenticationContinuable
#endif
{
#if WINDOWS_PHONE_APP
public void ContinueWebAuthentication(WebAuthenticationBrokerContinuationEventArgs args) { }
#endif
public void DoStuff()
{
}
public void Dispose()
{
}
}