我是VB.net編碼器,現在已經有好幾年了。由於軟件公司將默認SDK更改爲C#,我最近被推入學習C#。我不介意挑戰。我目前正在處理這個Array函數。我認爲我已經正確地調出變量,並且我的If語句結構正確。我唯一的問題是代碼塊末尾的返回變量下面有一條紅色的波浪線。紅色的波形意味着我有錯誤或返回語法不正確。我沒有看到我有什麼錯,所以我要求第二個意見。爲什麼我的c#類函數返回顯示紅色波浪狀?
這裏是代碼類。這個類所做的是從表單接收一個Integer,它應該返回一個4到5位小數的double。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Math;
namespace CarterCalculationTools
{
public class FcmValue
{
public int FcmVal(int[] NeeNum)
{
var arrFcmVal = new double[61];
double fcmResult;
arrFcmVal[6] = 6276;
arrFcmVal[7] = 7014.48155;
arrFcmVal[8] = 7553.5088;
arrFcmVal[9] = 7927.82976;
arrFcmVal[10] = 8210.66384;
arrFcmVal[11] = 8407.07949;
arrFcmVal[12] = 8544.72716;
arrFcmVal[13] = 8649.93887;
arrFcmVal[14] = 8707.52206;
arrFcmVal[15] = 8750.81112;
arrFcmVal[16] = 8771.81307;
arrFcmVal[17] = 8777.41987;
arrFcmVal[18] = 8770.4081;
arrFcmVal[19] = 8755.49639;
arrFcmVal[20] = 8735.9733;
arrFcmVal[21] = 8712.949;
arrFcmVal[22] = 8679.01338;
arrFcmVal[23] = 8644.57568;
arrFcmVal[24] = 8611.92784;
arrFcmVal[25] = 8575.37948;
arrFcmVal[26] = 8542.55544;
arrFcmVal[27] = 8495.9123;
arrFcmVal[28] = 8451.60508;
arrFcmVal[29] = 8409.80863;
arrFcmVal[30] = 8370.20725;
arrFcmVal[31] = 8334.23982;
arrFcmVal[32] = 8293.85668;
arrFcmVal[33] = 8252.51027;
arrFcmVal[34] = 8214.39145;
arrFcmVal[35] = 8177.75277;
arrFcmVal[36] = 8135.08678;
arrFcmVal[37] = 8095.31568;
arrFcmVal[38] = 8058.21202;
arrFcmVal[39] = 8023.5711;
arrFcmVal[40] = 7986.15127;
arrFcmVal[41] = 7949.5622;
arrFcmVal[42] = 7915.15875;
arrFcmVal[43] = 7882.78926;
arrFcmVal[44] = 7852.31547;
arrFcmVal[45] = 7822.26029;
arrFcmVal[46] = 7786.75829;
arrFcmVal[47] = 7753.07449;
arrFcmVal[48] = 7721.09674;
arrFcmVal[49] = 7690.72174;
arrFcmVal[50] = 7661.85424;
arrFcmVal[51] = 7634.40623;
arrFcmVal[52] = 7608.29631;
arrFcmVal[53] = 7578.34532;
arrFcmVal[54] = 7547.26788;
arrFcmVal[55] = 7517.52062;
arrFcmVal[56] = 7489.03351;
arrFcmVal[57] = 7461.74129;
arrFcmVal[58] = 7435.58307;
arrFcmVal[59] = 7410.50192;
arrFcmVal[60] = 7386.44464;
arrFcmVal[64] = 7291.45697;
if (Enumerable.Range(6,60).Contains(FcmVal(NeeNum)))
{ fcmResult = arrFcmVal[FcmVal(NeeNum)];
}
else if (FcmVal(NeeNum) == 64)
{
fcmResult = arrFcmVal[FcmVal(NeeNum)];
}
else
{
fcmResult = -1;
}
return fcmResult;
}
}
}
= UPDATE = 下面是用於從SQL表用數據填充的文本框的完成的代碼:
public void FcmValue()
{
string ConString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
string str = "SELECT [fcmVal] FROM [CalcTools].[dbo].[FcmValue] WHERE [neeNumCount] = @neeNumCount";
using (SqlConnection con = new SqlConnection(ConString))
{
//using (SqlCommand cmd = new SqlCommand("sp_frmNeedleCalc_FcmValue", con))
using (SqlCommand cmd = new SqlCommand(str, con))
{
cmd.Parameters.AddWithValue("@neeNumCount", nudNeeNum.Value);
if (con != null && con.State == ConnectionState.Closed)
{
con.Open();
}
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
string fcmFactor = rdr["fcmVal"].ToString();
txtFcmFactor.Text = fcmFactor;
}
con.Close();
}
}
}
什麼是錯誤信息?檢查錯誤列表窗格或將鼠標懸停在紅色波浪線上。 – Brandon
當你的方法返回一個int時,你試圖返回一個'double' –
檢查這一行:'public int FcmVal(int [] NeeNum)' – Neal