c# - 扩展方法和显式转换

标签 c# .net casting extension-methods explicit-conversion

我正在使用某个程序集中的类(源代码不可用),因此无法更改它们的代码 我需要为显式转换运算符添加扩展方法,有什么办法可以实现吗? (我尝试添加为常规扩展方法,但没有成功)

 public static explicit operator MembershipUser(this MembershipUser membership, User user)
    {
        return new MembershipUser("SimplyMembershipProvider", user.UserName, user.UserId, user.Email, null, null, user.IsApproved, user.IsLocked,
            user.CreateDate, user.LastLoginDate, user.LastActivityDate, user.CreateDate, DateTime.MinValue);
    }

我该如何解决这个问题?

最佳答案

您不能通过扩展方法重载运算符。

最好使用扩展方法:

public static MembershipUser ConvertToMembershipUser(this User user)
{
    return new MembershipUser("SimplyMembershipProvider", 
                              user.UserName, 
                              user.UserId, 
                              user.Email, 
                              null, 
                              null, 
                              user.IsApproved, 
                              user.IsLocked,
                              user.CreateDate, 
                              user.LastLoginDate, 
                              user.LastActivityDate,
                              user.CreateDate, 
                              DateTime.MinValue);
}

MembershipUser membershipUser = aUser.ConvertToMembershipUser();

关于c# - 扩展方法和显式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306614/

相关文章:

arrays - Swift Array 如何支持有效的 Element 子类型分配?

c# - ASP.NET - 存储临时文件

c# - 即使在我释放它之后,Mutex 似乎也没有释放

.net - 在iOS应用程序中使用.Net的内置身份验证

c# 将 System.Data.DataSetExtensions 添加到 .net 核心 web api 应用程序

java - Google 编码挑战未检测到 int

c# - NuGet 库匿名发布

c# - 将结构从 c# 传递到 C dll

c# - 如何从弹出消息导航到新页面?我正在使用 Xamarin 社区工具包弹出窗口

C# - 如何将 KeyValuePair<string,object> 转换为 KeyValuePair<object,object>?