返回随机字母表的扩展方法

use*_*675 1 c# extension-methods

如何开发一个可以从字母表(a,b,.... z)返回随机字符(单个字符)的扩展方法.

public static char RandomLetter(this char randomchar)
{

}
Run Code Online (Sandbox Code Playgroud)

Cec*_*ame 8

扩展方法在这里是错误的工具,因为字母表中的随机字母与输入字母无关(或者我在这里遗漏了什么?).

static string alphabet = "QWERTYUIOPASDFGHJKLZXCVBNM";
static Random = new Random();

public static char RandomLetter()
{
    return alphabet[random.Next(alphabet.Length)];
}
Run Code Online (Sandbox Code Playgroud)

编辑(回复评论):

你可以把它变成一个Random类型的扩展方法:

public static char NextRandomLetter(this Random random)
{
    return alphabet[random.Next(alphabet.Length)];
}
Run Code Online (Sandbox Code Playgroud)

(我选择不打电话,NextLetterOfTheAlphabet因为它显然应该是随机的)

可以通过同步实现这些方法的类的私有变量来添加线程安全性.但是我认为整个锁定过程比拉出一个随机数更多的CPU负担:

public static char SynchronizedRandomLetter()
{
    lock (random) // Although the lock is not random ;)
    {
        return alphabet[random.Next(alphabet.Length)];
    }
}
Run Code Online (Sandbox Code Playgroud)