java to C#

wanderingies 2013-10-16 08:43:44

Protocol localProtocol = (Protocol)Class.forName("protocol." + (this.class_name == null ? this.name : this.class_name)).newInstance();
localProtocol.type = Integer.parseInt(this.type);
localProtocol.size_policy = (this.maxsize == null ? 0 : Integer.parseInt(this.maxsize));
localProtocol.prior_policy = (this.priority == null ? 0 : Integer.parseInt(this.priority));
if (this.map.put(this.name.toUpperCase(), localProtocol) != null)
System.err.println("Duplicate protocol name " + this.name);
if (this.map.put(this.type, localProtocol) != null)
System.err.println("Duplicate protocol type " + this.type);



这个是 java 代码在Map里面存入类实例,在C#怎么实现?
我在C#里是这样写的

protected override mars Client(OS os)
{

i = os.type();
switch (i)
{
case 3:
return new Class1();
case 4:
return new Class2();
case 5:
return new Class3();
case 6:
return new Class4(); ... ... // 还有很多
}
return null;
}
...全文
218 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanderingies 2013-10-16
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
C#中有hashtable和dictionary可以用。 http://msdn.microsoft.com/zh-cn/library/system.collections.hashtable(VS.80).aspx

        public static Protocol ParsePro(ref string s)
        {
            Protocol pro;
            switch (s)
            {
                case "PublicChat":
                    pro = (Protocol)new PublicChat();
                    pro.type = 79;
                    pro.size_policy = 1024;
                    pro.prior_policy = 1;
                    return pro;
            }

            return null;
        }
我重写了,但还是有很多重复工作,怎么样简化,用 Hashtable 保存键对值可以,属性呢??

            Hashtable map = new Hashtable();
            map.Add("PublicChat", new PublicChat());
            Protocol pro;

            if (map.Contains("PublicChat"))
            {
                pro = (Protocol)map["PublicChat"];
                pro.type = 79;
                pro.size_policy = 1024;
                pro.prior_policy = 1;
                return pro;
            }
            return null;
全栈极简 2013-10-16
  • 打赏
  • 举报
回复

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧