小编Chr*_*con的帖子

C#将通用类作为方法参数传递

我有一个CreateMessage class用于处理来自a的传入消息TCPClient,获取用户类型并返回消息应如何格式化为其调用method.

在该方法中GetUserType,我想UserBaseType作为参数传递,这是一个generic abstract class需要TypeUserType.但是,它给了我错误:

使用泛型类型'UserTypeBase'需要一个类型参数.

我仍然试图用泛型和约束来包围我,所以我不知道我是否会以错误的方式解决这个问题.我已经做了一些挖掘尝试自己找到一个解决方案,但没有找到任何或多或少的裁缝我想要做的事情.

internal class CreateMessage
{
    internal static string user;
    internal static string message;

    internal CreateMessage(string data)
    {
        user = Lists.users[data.Substring(1, 3)];
        message = data.Substring(5, data.Length - 5);
    }

    private UserType GetUserType(UserTypeBase type)
    {
        return type.CreateType();
    }

    internal string Message()
    {
        UserType Type = null;
        if (user.Contains("[M]"))
            Type = GetUserType(UserMod);
        else if (user.Contains("[B]"))
            Type = GetUserType(UserVIP);
        else
            Type = …
Run Code Online (Sandbox Code Playgroud)

c# generics

3
推荐指数
1
解决办法
4400
查看次数

标签 统计

c# ×1

generics ×1