我正在更新Windows Form App,它将不同的货币相互转换(例如,英镑转换为欧元,反之亦然)。我曾经有一个想法是创建一个利用Web API框架的类,以便:
(不幸的是,作业需要多种格式的布局-否则,我将以单一格式使用下拉菜单。)
这是迄今为止我在控制台应用程序中用于计划和测试目的的代码:
static void Main(string[] args)
{
string URL = "https://openexchangerates.org/api/latest.json?app_id=4837847d2bc64fc496cf325525c5cf0d";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.ContentType = "application/json; charset=utf-8";
request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes("GBP"));
request.PreAuthenticate = true;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
string streamString = reader.ReadToEnd();
string[] streamArray = Regex.Split(streamString, "\n|: |,\\s*");
foreach (string s in streamArray)
{
if (s.Equals("\"GBP\""))
{
int element = Array.IndexOf(streamArray,s);
string dTPString = streamArray[element + 1];
double dollarsToPounds = Convert.ToDouble(dTPString);
}
if (s.Equals("\"EUR\""))
{
int element = Array.IndexOf(streamArray, s);
string dTEString = streamArray[element + 1];
double dollarsToEuros = Convert.ToDouble(dTEString);
}
}
}
Console.WriteLine(dollarsToPounds); //does not work
Console.WriteLine(dollarsToEuros); //does not work
}
已经测试了数组分配,并且双重变量“ dollarsToPounds”和“ dollarsToEuros”在“ using(Stream ...)”语句的上下文中均被证明具有正确的值-但是,由于“ using”的属性,这些变量尚未在其上下文之外分配值(在Main()开头声明变量不会影响此结果)。
有没有一种我可以代替使用的方法结构来执行与“使用(Stream ...)”相同的任务,即读取提供的URL的内容,然后该结构将允许在同一类中的其他位置引用变量?然后,这将允许我在课外引用它。
如果您需要我进一步解释代码,请务必提出。
您可以移动的声明
double dollarsToPounds
和
double dollarsToEuros
到行前
static void Main(string[] args)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句