我在哪里可以找到合适的领域?

Where can I find proper field?

我有两行简单的代码。

int x = 12 * 30;
MessageBox.Show(x.ToString());

第一行:我知道 x 是一个 instance 类型的 int。

第二行:所以,我使用了int类型的ToString方法。

问题:

如何在不使用int类型的"field"的情况下将值12*30放入实例x中?

如何在不使用 int 类型的 "field" 的情况下从实例 x 中获取值 12*30

我是不是漏掉了什么?

此致

编辑 1)

可能,,我说的不够清楚

我想从不同的方向阐明我的问题。

对于第一行)我听说"x"是一个int类型的实例。 (C# 5.0 in a Nutshell pg.15 "Predefined Type Example")。而且我认为,一个实例不能直接具有任何类型的值(int/string 任何类型)。所以,我认为它需要一个字段来赋值。这是我的第一个问题。

编辑 2)

第二题与第一题基本相同。实例 "x" 现在有值(在它里面的某个地方,我不知道它在哪里,值是 360)。如您所见,使用 "instance.method" 样式效果很好。我认为它的样式应该是"field.method"。这是我的第二个问题(虽然我和第二个问题有某种融合)。

编辑 3)

我只是怀着疑惑的心情提出了问题。我不想走任何奇怪的路线来完成某件事。我只是想知道即使没有任何 "FIELD" 它也能很好地工作。它与其他类型的(正常)工作方式非常不一致。这太令人困惑了。

将 x 更改为字符串类型并使用您想要的值对其进行初始化:

string x = (12 * 30).ToString();
MessageBox.Show(x);

...或者你想要

string x = "12 * 30";

MessageBox.Show((12 * 30).ToString());

我认为您没有理解 assignment operator 的作用。

It assigns the value of the right operand to the variable, property, or indexer element given by the left operand.

也就是说,x不包含12 * 30,它包含结果

所以如果你想让你的消息框显示准确的字符串 "12 * 30" 那么你也需要在一个字符串中设置这个值,周围有一些库可以尝试将这个字符串解密成一个数学公式检索它的结果,但是因为你已经有了这个,你可以从中创建一个字符串。

int x = 12;
int y = 30;
int z = x * y;
MessageBox.Show(String.Format("{0} * {1} = {2}", x, y, z));

在回答你的第二个问题时,你不能。您的变量 x(我的 z)不知道为赋予它值而执行的操作。它真正拥有的唯一 "knowledge" 是它的当前值。

显然,int 没有字段来放置它存储的数字的因数。

好的,第一个问题:您可以将内容放入变量中,因为它是一个 intint 变量应该存储数字,因此您可以使用数字文字,例如 5 作为该变量的值。在你的情况下,你不把12 * 30放到变量里,你把12 * 30的result放到变量里,也就是360。就像:

int x = 360;

它们完全相同。不需要使用 Int32 类型的字段。

第二个问题:不能。正如我之前所说,您将 360 放入变量中,而不是乘法表达式。那就是说变量不知道你给变量赋值360的时候,你实际用的是12*30,它只知道你要存360,仅此而已。所以如果你想将表达式存储在变量中,不要使用 int。相反,使用表达式树。 Jon Skeet的书《C# In Depth》介绍了表达式树,你可以看看

编辑:

现在你说得更清楚了,我可以告诉你 int 确实有一个字段,但它是私有的。你可以去referencesource.microsoft.com看看int的源码。但是为什么cn你只是给一个int赋值呢?因为那是原始类型的美妙之处。他们只是让你这样做。一切都与 CLR 有关。