2

我是编程世界的初学者,正在学习 C# 课程,但我正在努力学习基础知识。我发现当基础知识被一一定义时,我(感觉)理解它们就好了。
然而,当我看到一个声明时,我真的很难理解它们是如何协同工作的。//我们"Murach's C# 2012"供您参考。

例如,当我看到下面的代码时,我无法定义类型、方法、变量、参数和参数。我希望有人可能有一些帮助/帮助他们的提示或技巧。

string subtotal = Convert.ToDecimal(txtSubtotal.Text);

字符串是方法还是对象?subtotal 是一个变量,用于转换"txtSubtotal.Text"文本框中的值。

也许答案就是花更多时间在更多项目上工作,但问也无妨。
还想补充一点,这是一个在线课程,就给出示例或进一步解释而言,教授非常缺乏答案。我已经告诉他了,我几乎收到了“对不起”的回应。谢谢!肖恩

4

7 回答 7

2

string subtotal = Convert.ToDecimal(txtSubtotal.Text);

赋值表达式无法编译。让我们分解一下。

  • string subtotal我们在这里声明一个变量。名称subtotal,类型string

  • =在这种情况下,赋值与声明相结合:在一条指令中,我们将声明一个变量对其进行赋值 - 在它的末尾 ( ;)subtotal变量将采用赋值运算符右侧的值 ( =)。

  • Convert.ToDecimal()是一个方法调用。一种static方法,其实。您可以判断,因为您在该Convert类型上调用此方法,而没有该类型的实例(即您不需要这样做new Convert())。该方法采用某种类型的值(由其重载之一允许),并将其转换为一个decimal值。因为赋值的左操作数是 astring并且我们没有将我们的转换decimal为 a string,所以赋值将无法 compile。我们可以.ToString()在最后添加,将decimalback 转换为 astring并且分配将起作用。

    ToString()需要使它工作,因为在and之间没有定义隐式转换decimalstring

  • txtSubtotal是一个对象,可能是一个类的实例TextBox。如果是这种情况,则此对象派生自 Control并能够在Form.

  • .Text是对象的一个​​属性TextBoxastring表示它的显示值。

于 2013-09-19T04:06:38.503 回答
1

string是类型,您尝试将文本框文本转换为Decimal类型并将其设置为字符串类型

如果您需要从输入文本创建的十进制对象,则将类型更改为十进制。像下面

decimal subtotal = Convert.ToDecimal(txtSubtotal.Text);
于 2013-09-19T03:54:35.967 回答
1
  • string是类型。
  • subtotal是变量。
  • Convert.ToDecimal()是一种方法。
  • txtSubtotal是一个文本框控件。
  • .Text是文本框控件的属性,类型为string

您的示例令人困惑,因为结果Convert.ToDecimal()是 a decimal,但您的变量类型为 a string。要么你的变量类型是错误的,要么你不必要地从一个string类型(.Text)转换为一个decimal

于 2013-09-19T03:57:08.043 回答
0

您不能在赋值运算符的 LHS(左侧)上使用方法。考虑到这一点,您可以确定字符串不是方法

至于其他事物,您在方法调用中指定的变量称为参数,在方法定义中指定的变量称为参数。

于 2013-09-19T03:57:13.507 回答
0

string 是小计变量的类型

转换是一个类

txtSubtotal 是 TextBox 控件的名称,Text 是其中包含的文本(字符串类型)

ToDecimal 是 Convert 类的一种方法,允许您将 txtSubtotal.Text 转换为小数类型

不幸的是,这段代码无法编译,因为 C# 期望小计的类型为小数类型

于 2013-09-19T04:02:04.903 回答
0

很抱歉你有这么难的时间。软件开发是一项有益的任务,但也令人沮丧和困难。它不适合所有人。也许它会为你工作,也许不会。生活和软件成功的很大一部分是快速失败的想法。如果您发现自己陷入了不适合自己的境地,请在浪费太多时间之前迅速退出,从而为自己提供最好的服务。不是说这适合你——只有你可以决定。如果你坚持下去并克服你遇到的困难,我祝你好运。

我建议获得一个试用的复数视力帐户,并尽可能多地观看那里的初学者内容,因为你可以挤到你的可用时间。我认为这是学习 .net 和 c# 和软件的最佳资源。

这就是我对你问题的真正意义的回答。

就您的示例代码行而言-不会编译。您正在对将十进制类型返回给字符串类型变量的表达式的结果进行赋值。C# 不允许这样做。

string subTotal 是一个字符串类型变量的声明。= Convert.(...) 是将(静态)函数的返回值分配给所述变量。

于 2013-09-19T04:03:20.533 回答
0

Microsoft 的网络是开始寻找基础知识的好地方。

我建议你开始从这个角度看待事物:输入是什么?输出是什么?

在您发布的示例中,Convert.ToDecimal()是一个Convert需要字符串作为输入(参数)的类的方法。String是一个DataType可以包含字母数字、特殊字符(转义字符除外)等的TextBox。txtSubtotal 文本被转换Decimal DataType为分配给String名为 subtotal 的变量。

最重要的是,这要有很大的耐心。

于 2013-09-19T04:03:34.773 回答