C#,如何使用WebAPI在类中创建变量,然后可以在其他类中引用这些变量?

伊莎贝尔·梅

我正在更新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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用在其他类扩展中创建的变量

如何使用其他类中的变量?

是否可以在其他文件中的其他类主体内创建类而不是 C# 中的声明?

如何在其他类中使用一个类中的变量?

如何以可以从 C# 中的其他方法访问的方式存储随机类变量?

如何在其他类中创建的ASP.NET/Blazor _Layout.cshtml中使用变量?

如何在其他函数中使用函数中的变量而不将变量放入类的 __init__ 方法中?

如何在类中定义带有值的变量以及如何在其他类中使用

如何正确实例化一个类以在其他类中引用。统一 C#

访问其他 Windows 窗体类 C# 中的变量

在其他类中使用一个类中的变量

如何在其他类中使用变量

如何访问其他类中的变量

如何在其他函数中引用类对象?

如何使用kivy从def中的其他类访问变量?

C++ 如何在其他类中创建类成员?

如何让变量依赖于类中的其他变量?

如何创建可以在其他模块中编辑而又不全局的变量?

如何在python类中的其他函数中定义(变量)的函数内使用变量?

C#从其他类调用变量

为什么我的类的自定义成员变量在其他类中不更新?

如何获取包含在其他窗体/C# Windows 窗体类中的值

如何在其他类中引用一个类的字段?

PHP在其他类中使用该类的变量

在其他类/ Flutter 中使用变量信息

我可以在其他类的main内部使用声明和分配的变量吗?

如何在其他类中定义了Tk()的类中创建StringVar?

从API类中创建读写变量,这些变量是只读的

在 Java 中从其他类调用变量