Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
if语句中声明变量的C#错误_C# - Fatal编程技术网

if语句中声明变量的C#错误

if语句中声明变量的C#错误,c#,C#,我不熟悉编码。我正在上C#类课程,并试图在Visual Studio中编写一个应用程序。下图第45行的错误是:使用未分配的局部变量“CarriesFromFat”。我已经声明了它,在第37行我给它分配了一个值:“卡路里FromFat=fatGrams*fatGram\u比率 我该如何解决这个问题。我知道这应该很简单,但我不知道,也没有找到答案。 谢谢你的帮助 您需要在启动时或至少在尝试在45行上访问其值之前,为卡路里FromFat提供一个值。在代码中,如果变量carriesfromfat已赋值或

我不熟悉编码。我正在上C#类课程,并试图在Visual Studio中编写一个应用程序。下图第45行的错误是:使用未分配的局部变量“CarriesFromFat”。我已经声明了它,在第37行我给它分配了一个值:“卡路里FromFat=fatGrams*fatGram\u比率

我该如何解决这个问题。我知道这应该很简单,但我不知道,也没有找到答案。 谢谢你的帮助


您需要在启动时或至少在尝试在
45
行上访问其值之前,为
卡路里FromFat
提供一个值。在代码中,如果变量
carriesfromfat
已赋值或未赋值,则该变量是有条件的。对于您的确切问题,您需要在创建变量时执行类似的操作

double-fatgram,总热量,卡路里fromfat=0,百分比卡路里fromfat;


此外,在查看代码时,代码逻辑似乎有问题,但这只是第一次查看代码时的一个模糊猜测。

if条件在某些情况下不会初始化
卡路里fromfat
变量(情况由您的条件决定),因此,编译器为了防止运行时出现异常(因为您不能将
卡路里fromfat=null;//非数值
除以
双倍
值),它将在编译代码之前检索一个
“使用未分配的局部变量”
错误。这只是防止程序崩溃的一种聪明方法。 因此,初始化变量,如下所示:

double caloriesFromFat = 0;
你应该没事。
这将防止您的代码在执行过程中崩溃,否则0和null是不兼容(不同)的值。

不要发布代码的屏幕截图。将文本粘贴到帖子中。仅当周围的
条件为true时才会发生赋值。在任何其他情况下,它保持未赋值。PercentCarriesFromFAT=((脂肪克*脂肪克/总热量);这是我在你发表评论之前所做的工作。但是你的更简单,更符合常识。谢谢你。此外,我现在尝试将答案从十进制转换为双精度或整数。我的数字是8脂肪克,200卡路里。脂肪的卡路里转换为(脂肪克*9)(8*9=72)脂肪热量百分比的换算为:脂肪热量(72)/总热量(200)=0.36。我应该使用哪个数学函数来达到36%?我已经尝试了几个,但他们似乎没有改变答案。再次感谢您的帮助。@SteveE。您只想将
0.36
转换为
36%
?是的,请。我尝试过:int val1=Decimal.ToInt32(dec1);和一些数学选项,如MATH.round,但我似乎不知道该用哪一个。@SteveE.
MATH.round((72d/200d,2)*100)+“%”怎么办?