问题情景:
在编写uwp app时,
为网络请求写了一个方法,
为按钮的点击事件写了一个方法,
这两个方法都在同一个类里面,
按钮的点击事件这个方法,怎么才能访问网络请求方法里的变量?
代码如下:
namespace simple_http_client_uwp_demo
{
/// <summary>
/// 可用于自身或导航至 Frame 内部的空白页。
/// </summary>
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
// 网络请求
public async void startRequest()
{
// 创建 HTTP Client
HttpClient httpClient = new HttpClient();
// 为 Get 请求添加标头合集
var headers = httpClient.DefaultRequestHeaders;
// 当标头为 ie 时
string header = "ie";
if( !headers.UserAgent.TryParseAdd( header ) )
{
throw new Exception( "Invalid header value : " + header );
}
// 当标头为非 ie 时
header = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)";
if( !headers.UserAgent.TryParseAdd( header ) )
{
throw new Exception( "Invalid header value: " + header );
}
// 创建 Uri
Uri requestUri = new Uri( "http://bbs.eui.cc/forum.php" );
// 开始网络请求,该操作为异步操作,并检索请求到的字符串
HttpResponseMessage httpResponse = new HttpResponseMessage();
string httpResponseBody = "";
try
{
httpResponse = await httpClient.GetAsync( requestUri );
httpResponse.EnsureSuccessStatusCode();
httpResponseBody = await httpResponse.Content.ReadAsStringAsync();
}
catch( Exception ex )
{
httpResponseBody = "Error " + ex.HResult.ToString( "X" ) + " Message : " + ex.Message;
}
// 就是这个,我想挪到按钮的点击事件里
mainPage_TextBlock_ResultTextBlock.Text = httpResponseBody;
}
// 按钮的点击事件
public void mainPage_Button_TestBtn_Tapped( object sender, TappedRoutedEventArgs e )
{
startRequest();
// 还有一个 TextBlock用来显示网络请求获取到的数据,目前是在网络请求里实现的,我想把这个挪到按钮的点击事件里,有什么办法吗?
}
}
}
方法中的成员变量 作用域 是 方法内部
类成员变量作用域是整个类中
所以 你想方法中彼此访问成员 必须 提升这个成员的级别 变为类成员 这样整个类任何地方都能访问了~