C# 从类中定义的字符串数据
请,你们能帮助我如何从类中获取数据进行第二次初始化吗。 问题是第三步是“登录”和“密码”->NullC# 从类中定义的字符串数据,c#,string,class,constructor,definition,C#,String,Class,Constructor,Definition,请,你们能帮助我如何从类中获取数据进行第二次初始化吗。 问题是第三步是“登录”和“密码”->Null 但我在第二步中定义了“登录”和“密码”。你能告诉我为什么第三步的登录名和密码是空的,我如何修复它?我不会为此创建静态类。因此,除非我在这里遗漏了什么: access.ValidateLogin(login.Login, login.Password); login对象具有您在获取数据过程中设置的值 如果您不打算利用同一个对象,并且希望它们是相同的,那么我想您必须这样做: LoginValid
但我在第二步中定义了“登录”和“密码”。你能告诉我为什么第三步的登录名和密码是空的,我如何修复它?我不会为此创建静态类。因此,除非我在这里遗漏了什么:
access.ValidateLogin(login.Login, login.Password);
login
对象具有您在获取数据过程中设置的值
如果您不打算利用同一个对象,并且希望它们是相同的,那么我想您必须这样做:
LoginValidation access = new LoginValidation();
access.Login = login.Login;
access.Password = login.Password;
access.ValidateLogin(loginText.Text, passwordText.Text);
但这真的很奇怪。它会起作用,但这根本没有意义。为了学习的目的详细说明这些评论
Inheritance != Object Reference
请给出以下信息:
public class A
{
public String Foo;
}
public class B : A
{
SetFoo(String foo)
{
Foo = foo
}
}
public class C : A
{
UseFoo()
{
PrintLn(Foo);
}
}
创建对象B
并设置Foo
时,不会将C
中的Foo
设置为简单,因为它们都继承自A
。它们是不同的对象,因此对自己的Foo
因此,您的代码可以执行如下操作,并且是正确的:
public void Main()
{
var validLoginInfo = new LoginInfo(loginText.Text)
var isValid = new LoginValidator(loginText.Text, passwordText.Text, validLoginInfo).Validate();
...
}
然后,您可以使用给定的值并与有效的登录信息进行比较。好的,等等,我将在这里添加调试您在初始化后根本没有使用
login
变量。想想看,Skeet是对的,我浏览代码的速度太快了。仅仅因为您从同一个基继承,并不意味着它是为登录和密码输出而添加到我的后期调试中的同一个对象。问题不在这里access.ValidateLogin(loginText.Text,passwordText.Text);问题是,在第二步中,我为类集合定义了登录名和密码,但在第三步中,这个定义又是空的。(null)@RadekTarant,它们不是该对象的同一实例。这些值是如何在实例之间保持或迁移的?为了获得帮助,我编辑了这个“access.ValidateLogin”(login.login,login.Password);现在它的作品。谢谢@拉德克,我很高兴能帮上忙!