如何在不同方法(同一类中的两个方法)中使用方法内变量中的数据
本文关键字:方法 两个 使用方法 变量 数据 一类 | 更新日期: 2023-09-27 18:34:42
我想在第二个方法中重用第一个方法中的OAuth2Parameters参数。代码如下:
public class SomeController : ApiController
{
public string First()
{
OAuth2Parameters parameters = new OAuth2Parameters();
parameters.ClientId = "someClientID";
parameters.ClientSecret = "someClientSecret";
parameters.RedirectUri = "someRedirectUri";
parameters.Scope = "someScope";
string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
return authorizationUrl;
}
public void Second(string someAccessCode)
{
// I want to reuse the above OAuth2Parameters parameters here:
parameters.AccessCode = someAccessCode;
OAuthUtil.GetAccessToken(parameters);
string accessToken = parameters.AccessToken;
}
}
我怎样才能做到这一点?
如果第一个方法总是在第二个方法之前调用,则可以为类声明一个成员字段。
public class SomeController : ApiController
{
OAuth2Parameters parameters;
public string First()
{
string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
return authorizationUrl;
}
public void Second(string someAccessCode)
{
// I want to reuse the above OAuth2Parameters parameters here:
parameters.AccessCode = someAccessCode;
OAuthUtil.GetAccessToken(parameters);
string accessToken = parameters.AccessToken;
}
}
如果不确定,请使用具有支持字段的属性。
public class SomeController : ApiController
{
OAuth2Parameters _parameters;
private OAuthParameters {
get {
if (_parameters == null) {
_parameters = new OAuth2Parameters();
_parameters .ClientId = "someClientID";
_parameters .ClientSecret = "someClientSecret";
_parameters .RedirectUri = "someRedirectUri";
_parameters .Scope = "someScope";
}
return _parameters;
}
}
public string First()
{
string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(OAuthParameters);
return authorizationUrl;
}
public void Second(string someAccessCode)
{
// I want to reuse the above OAuth2Parameters parameters here:
parameters.AccessCode = someAccessCode;
OAuthUtil.GetAccessToken(OAuthParameters);
string accessToken = OAuthParameters.AccessToken;
}
}
试试这个。在 First(( 上面声明变量,以便它可用于两种方法
OAuth2Parameters parameters;
public string First() { parameters = new OAuth2Parameters(); ....