我目前正在学习C#,但我遇到了困难,我无法找到解决方案.
我正在尝试创建自己的Exception类.
该异常称为"InvalidNumberException",它检查一个数字是否等于5.我知道它看起来有点愚蠢,但我只需要了解创建自定义异常的想法.
到目前为止,我在MSDN上发现,为了创建Exception,我需要这四个构造函数:
public class InvalidNumberException : System.Exception
{
public InvalidNumbertException() : base() { }
public InvalidNumberException(string message) : base(message) { }
public InvalidNumberException(string message, System.Exception inner) : base(message, inner) { }
// A constructor is needed for serialization when an
// exception propagates from a remoting server to the client.
protected InvalidNumberException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) { }
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在这个类中实现从控制台输入的数字等于5的方法或构造函数,如果不是,则抛出异常.
如果有人帮助我,我会很感激.
我试图忽略远程桌面连接上的证书警告 - 图像中的一个:

到目前为止,我发现当我选中"不再询问"复选框时,它会生成注册表项:
HKCU:\ Software\Microsoft\Terminal Server Client\Servers
将生成一个新记录,其中包含服务器名称和密钥名称CertHash,其中包含特定于计算机的值.机器的关键是相同的 - 如果我删除它并选中复选框,则会再次生成相同的值.如果我重新创建虚拟机,则会有一个新值,因此我认为它是特定于机器的.
有人能告诉我这个哈希是如何生成的,所以我可以从命令行填充密钥?添加证书不是一个选项,机器将经常重新生成,所以我需要一个选项来自动忽略它,因为我需要将用户连接到机器并在其中运行一些程序.
我知道在C#中的类的构造函数中调用一个方法不是一个好习惯,但我坚持一些奇怪的东西.我的问题是,当我创建我的类的对象时,我需要在对象中使用随机数分配一个字段.
例如
class RandomNumberHandler
{
private int randomNumber;
public RandomNumberHandler()
{
this.randomNumber = GenerateRandomNumber();
}
private int GenerateRandomNumber()
{
return (new Random()).Next(3000) + 1000;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我需要一个四位数字.我认为在课堂生成随机数,其中我创建的对象,并把它当作参数传递给构造函数,但发生在其他类中的随机数似乎不是一个很好的主意是因为我试图实现了强大的凝聚力对于我的课程.我正在为我在大学的"高质量代码"课程这样做,我正在寻找最好的方法.欢迎任何想法如何做到这一点:)