将Lua转换成C#

我有以下 Lua 代码想要转换成 C#。唯一的问题在于字符串操作。我不知道如何将它们翻译成 C#:

如果 (classaddress~=nil) and (classname~=nil) then
  classname=classname:match "^%s*(.-)%s*$"
  如果 (classname~='') then
    local r=string.find(classname, "[^%a%d_.]", 1)
    如果 (r==nil) or (r>=5) then
      返回 currentaddress, classaddress, classname
    end
  end
end
点赞
用户570336
用户570336

你的代码中的字符串是模式。它们类似于正则表达式,但功能较弱。第一个匹配项匹配整个字符串,不包括字符串开头和结尾的空格,因此它的行为类似于Trim。第二个模式用于查找第一个不是字母、数字、下划线(_)或点(.)的字符。将其转换为C#,可能看起来像这样:

public class MyReturnObject {
    public MyReturnObject(int currentAddress, int classAddress, string className) {
        // ...
    }
}

public MyReturnObject ParseStuff(int? classAddress, string className, int currentAddress) {
    if(classAddress.HasValue && className != null) {
        className = className.Trim();
        if(!String.IsNullOrEmpty(className)) {
            var r = System.Text.RegularExpressions.Regex.Match(className, @"[^\a\d_.]")?.Index;

            if(!r.HasValue || r.Value >= 5) {
                return new MyReturnObject(currentAddress, classAddress.Value, className);
            }
        }
    }

    return null;
}
2016-01-22 12:41:12