0

有一个这样的 php 代码,将其转换为 C#。

function isValid($n){
if (preg_match("/\d+/",$n) > 0 && $n<1000) {
    return true;
}
return false;
}

这是我的尝试,但显示错误错误是“预期的类、委托、枚举、接口或结构错误 C#”

public string IsValidate(string Item)
{
    string Result = Item;
   try
{
Result = System.Text.RegularExpressions.Regex.Replace(InputTxt, @"(\\)([\000\010\011\012\015\032\042\047\134\140])", "$2");
}
catch(Exception ex)
{
console.WriteLine(ex.Message)
}
return Result;
}

错误是什么,有没有比我的尝试更好的方法来实现这个?我从这里的代码中得到了这个片段

4

3 回答 3

4

您尚未在类/结构中定义此方法,这就是您收到此错误的原因。您可以在类中定义此方法。

public class MyValidator
    {
        public string IsValidate(string Item)
        {
          //Your code here
        }

    }

稍后您可以像这样使用它:

MyValidator validator = new MyValidator();
validator.IsValid("Your string");

此外,您在语句末尾缺少分号,并且Console.Write控制台的“c”应为大写

编辑:
由于在您的 php 代码中,您似乎正在尝试查看传递的字符串是否为整数并且小于 1000,您可以使用int.TryParse以下代码:

public class MyValidator
{
    public bool IsValidate(string Item)
    {
        string Result = Item;
        int val;
        if (int.TryParse(Item, out val) && val > 0 && val < 1000)
        {
            return true;
        }
        else
        {
            return false;
        }

    }
}

在您的主要方法中,您可以执行以下操作:

 static void Main()
        {
            MyValidator validator = new MyValidator();
            Console.WriteLine(validator.IsValidate("asdf123")); // This will print false
            Console.WriteLine(validator.IsValidate("999")); //This will print true
            Console.WriteLine(validator.IsValidate("1001")); //This will print false
         }
于 2012-06-13T04:19:23.927 回答
3

在 C# 中,方法必须放在类或结构中:

public class Validator {
  public string IsValidate(string item) {
   ...
  }
}

在这种情况下,我可能会这样翻译:

public static class Validator {   
  public static bool IsValid(string item) {
    int value;
    return int.TryParse(item, out value) 
           && value > 0 && value < 1000;    
  } 
}
于 2012-06-13T04:20:20.077 回答
2

您可以在静态类中定义您的函数,这样您就不必在调用函数之前创建它的实例。像,

public static class Validator
{
    public static string IsValidate(string item)
    {
        // ...
    }
}

然后,您可以使用以下方法调用它:

Validator.IsValidate("String to validate")

编辑:然后您可以通过以下方式检查您的函数是否返回您期望的内容:

if(Validator.IsValidate("String to validate") == "Expected result") 
{ 
    /* Logic to be executed here */ 
}
于 2012-06-13T04:25:56.897 回答