Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用函数替换字典_C# - Fatal编程技术网

C# 用函数替换字典

C# 用函数替换字典,c#,C#,我正在制作一个具有角色属性的游戏,比如力量、敏捷等。我把它们都放在字典中。我需要对装备、buff等属性实现“mods”。我想通过Find/replace用某种类型的函数(字符串输入)替换“CurrentStats[Key]”的所有实例。(我有成百上千的参考资料,我不能全部手工完成) 所以,基本上,我正在寻找一种方法来编写一个函数,在这个函数中,我可以以某种方式编写 功能(“强度”)=5 同时仍然能够使用 if(函数(“强度”)==5)用于获取 这可能吗?本地方法是为角色设置一个类。您可以使用属性

我正在制作一个具有角色属性的游戏,比如力量、敏捷等。我把它们都放在
字典中。我需要对装备、buff等属性实现“mods”。我想通过Find/replace用某种类型的
函数(字符串输入)
替换
“CurrentStats[Key]”的所有实例。(我有成百上千的参考资料,我不能全部手工完成)

所以,基本上,我正在寻找一种方法来编写一个函数,在这个函数中,我可以以某种方式编写

功能(“强度”)=5

同时仍然能够使用

if(函数(“强度”)==5)
用于获取


这可能吗?

本地方法是为角色设置一个类。您可以使用属性。如果要指定某些内容,通常会使用参数调用函数,但可以直接指定属性

public class Character {
    private bool overpowered = false;
    private int _strength = 0;
    public int Strength
    {
        get { return this._strength; }
        set {
            if (value > 10) { overpowered = true; }
            this._strength = value;
        }
    }
    // [...]
}
然后,要使用属性,请通过对象简单访问它:

Character c = new Character();
c.Strength = 5;
if (c.Strength == 5) { /* ... */ }

使用字典在这里没有什么意义。

看起来ref返回值就是我想要的。我不知道如何将此标记为已回答。第一个帖子在这里。感谢大家

Visual Studio在其搜索和替换中内置了正则表达式。您只需要在执行替换时启用该选项

您可能只需执行全局搜索并将类似于
CurrentStats\[([^\]+)\]
的内容替换为
MyFunction($1)

说明:这将搜索文本字符串
CurrentStats[]
,两个括号之间的内容是一个组(在替换中引用为
$1
),由
包围,包含
[^\]+
,或者,“任何非结束引号的字符组
]
,重复一次或多次”


请注意,如果密钥本身可能包含类似于
myArray[i]的内容,那么这将不起作用
从那以后,它显然会匹配它的右括号。Regex不太擅长匹配括号或标记。

所以你想替换所有匹配以下键的值吗?你正在编辑你的源代码,对吗?谜一样,是的。Kunal,我需要能够将其他变量更改为另一侧的任何值使用该语法的等号。听起来你在寻找你可以用Visual Studio中内置的正则表达式替换来实现这一点…我使用字典是因为我需要能够迭代和显示所有现有的统计信息。我还使用System.Reflection初始化我的字符,它从枚举中读取数据以将统计信息添加到字典中。This是这样的,以便我以后可以扩展和添加新属性easily@JonBrant然后,您可以在内部使用字典并实现IEnumerable接口。将嵌套类Stats作为字符的聚合。欢迎使用Stack Overflow,然后:)。过几天会提示您选择最喜欢的答案(可以是您自己的答案)请考虑在你的答案中添加更多的细节,比如代码示例,这样,遇到同样问题的人可以使用它。这个和使用REF返回应该让我快速排序。谢谢大家。