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