我使用接口获得弹出窗口的实现.有没有办法在某些参数中进行硬编码?

  • 本文关键字:参数 编码 有没有 接口 实现 窗口 c#
  • 更新时间 :
  • 英文 :


我有调用依赖服务的代码来访问iOS和Android中的PopUp实现。它是这样做的:

DependencyService.Get<IPopUp>().Popup("XYZ", "ABC",
(Color)Application.Current.Resources["PopUpTitleColor"],
(Color)Application.Current.Resources["PopUpMessageColor"],
(Color)Application.Current.Resources["PopUpBackgroundColor"],
(Color)Application.Current.Resources["PopUpSeparatorColor"],
(sen, args) => {
DidShowFirstMessage = true;
});
public interface IPopUp
{
void Popup(string title,
string message,
Color titleColor,
Color messageColor,
Color popUpBackgroundColor,
Color popUpSeparatorColor,
EventHandler handler);
}
[assembly: Dependency(typeof(PopupImplemention))]
namespace Japanese.iOS.CustomRenderers
{
public class PopupImplemention : IPopUp
{
public void Popup(string title,
string message,
Color titleColor,
Color messageColor,
Color popUpBackgroundColor,
Color popUpSeparatorColor,
EventHandler handler)
{

每次调用弹出窗口时,它都使用相同的颜色参数。有没有办法在不更改弹出窗口实现的情况下,我可以像这样称呼弹出窗口:

DependencyService.Get<IPopUp>().Popup("XYZ", "ABC", (sen, args) => {
DidShowFirstMessage = true;
});

由于它是一个接口,我认为我不能硬编码参数,所以想知道我该怎么做。

您可以创建扩展方法:

public static void Popup(this IPopUp popup, string title, string message, EventHandler handler)
{
popup.Popup(
title,
message, 
(Color)Application.Current.Resources["PopUpTitleColor"],
(Color)Application.Current.Resources["PopUpMessageColor"],
(Color)Application.Current.Resources["PopUpBackgroundColor"],
(Color)Application.Current.Resources["PopUpSeparatorColor"],   
handler
);
}

最新更新