我正在做一项学校作业,必须使用扩展方法来查找包含特殊字符的字符串,例如 '!'、'@'、'#'、'$'、'%'、'^'、'&' , '*'。
namespace ExtensionMethodAssignment
{
public class CheckID
{
public bool IsAllowedID(string id)
{
string specialChar = @"!@#$%^&*";
foreach (var identification in specialChar)
{
if(id.Contains(identification)) return true;
}
return false;
}
}
static void Main(string[] args)
{
Console.WriteLine("Type your ID : ");
string id = Console.ReadLine();
if (id.IsAllowedID() == true)
{
Console.WriteLine("ID is not allowed. \n !, @, #, $, %, ^, &, and * are not allowed.");
}
else
{
Console.WriteLine($"{id} is allowed.");
}
}
}
}
我上面写了一个cod但是我不知道如何使用它作为扩展方法。我想这似乎只是制作一个简单的空方法名称 IsAllowedID,然后添加到 Main 方法上,但我不知道如何。
C# 中的静态扩展类可以像下面这样使用:
public static class IdentityExtension
{
private static Regex ValidationRegex = new Regex("[!@#$%^&*]");
public static bool IsIdValid(this string id)
{
return !ValidationRegex.IsMatch(id);
}
}
由于“ValidateId”方法采用带有“this”关键字的字符串,因此该方法是一个扩展,可以像下面这样使用:
var fooId = "!fooId";
Console.WriteLine(fooId.IsIdValid());
在这种情况下输出将为 false,因为“fooId”有“!”作为一个元素。