我正在编辑一段代码,其中有两个单独的类Application和LogIn。
public class Application: WebEntity
{
public void logInMethod()
{
LogIn logInObject = new LogIn();
this = logInObject.logUserIn("user", "password");
}
}
由于登录是Application的一项功能,我想创建一个使用LogIn的方法。 logIn.logUserIn(“user”,“password”)当前返回Application的对象。我希望能够做一些像第6步(上面)所做的事情。这可能吗?
答案 0 :(得分:0)
简答:不,你不能。
方法无法设置正在执行的实例。很难理解你想做什么,但你可能想要做的是创建一个返回Application
实例的方法:
public class Application : WebEntity
{
public static Application CreateLogedInApplication()
{
LogIn logInObject = new LogIn();
Application newApplication = logInObject.logUserIn("user", "password");
return newApplication;
}
}
答案 1 :(得分:0)
听起来你需要这样的东西:
public class Application
{
private Token _token = null;
public void logInMethod()
{
LogIn logInObject = new LogIn();
_token = logInObject.logUserIn("user", "password");
}
}
public abstract class Token
{
public abstract string UserName { get; }
public abstract bool Validated { get; }
}
public class LogIn
{
private class TokenImpl : Token
{
public TokenImpl(string userName, bool validated)
{
_userName = userName;
_validated = validated;
}
private string _userName;
private bool _validated;
public override string UserName { get { return _userName; } }
public override bool Validated { get { return _validated; } }
}
public Token logUserIn(string userName, string password)
{
return new TokenImpl(userName, password == "pAssw0rd");
}
}
基本上,LogIn
类会创建Token
类可以使用的Application
。