2013-10-26 16 views
0

因此,我正在製作一個程序,輸入2個測試分數,並在標籤中說明測試1或測試2是否具有較高的等級和兩個測試的字母等級。這應該是一個簡單的程序,但我得到2錯誤:不能隱式地將類型'對象'轉換爲'字符串'。存在明確的轉換(您是否缺少演員?)。 letterGrade1和letterGrade2出現此錯誤。這裏是代碼:我的考試成績計劃中的錯誤?

private object TestScores(decimal Test) 
    { 
     string testGrade = null; 

     //Perform the function 
     if (Test >= 90) { 
      testGrade = "A"; 
     } else if (Test >= 80) { 
      testGrade = "B"; 
     } else if (Test >= 70) { 
      testGrade = "C"; 
     } else if (Test >= 60) { 
      testGrade = "D"; 
     } else if (Test < 60) { 
      testGrade = "F"; 
     } 


     //return the answer 
     return testGrade; 
    } 


     } 
    } 

如果有人可以請幫助我解決問題,我將不勝感激!

問題已解決!謝謝大家。

+0

在您的TestScore方法中,您應該將對象的返回類型更改爲字符串,因爲這是您返回的唯一類型。否則,當你接收到這個值時,你必須在該方法之前放置一個強制轉換(字符串)TestScores(test1ScoreDecimal); – Mark

回答

1

將您的代碼更改爲此...

private string TestScores(decimal Test) 
    { 
     string testGrade = null; 

     //Perform the function 
     if (Test >= 90) { 
      testGrade = "A"; 
     } else if (Test >= 80) { 
      testGrade = "B"; 
     } else if (Test >= 70) { 
      testGrade = "C"; 
     } else if (Test >= 60) { 
      testGrade = "D"; 
     } else if (Test < 60) { 
      testGrade = "F"; 
     } 
     //return the answer 
     return testGrade; 
    } 

如果消費者需要投下對象,沒有理由返回對象。

+0

感謝大家。代碼現在工作:)。 – Gunnar

0

您正在嘗試的TestScores結果分配給一個string變量,但TestScoresTestScores返回類型返回object ...

更改爲string

或更改TestScores(test1ScoreDecimal).ToString()如果你真的需要由於某些未知原因返回object

1

您正試圖在這幾行代碼的對象分配給字符串:

letterGrade1 = TestScores(test1ScoreDecimal); 
    letterGrade2 = TestScores(test2ScoreDecimal); 

你可以解決它以兩種方式要麼改變TestScores的返回類型爲字符串。 或將結果強制轉換爲字符串。

letterGrade1 = (string)TestScores(test1ScoreDecimal); 
    letterGrade2 = (string)TestScores(test2ScoreDecimal); 
-1

要麼讓TestScore靜態類沒有構造函數:

static class TestScores 
{ 
    static string Calculate(double score){} 
} 

或正確實例化類:

letterGrade1 = new TestScores(test1ScoreDecimal); 
letterGrade2 = new TestScores(test2ScoreDecimal); 
+0

無視...乍一看,我看到TestScores不是一個班級。我以爲這是第一次。 –

+0

這是否有意義?你有一個沒有構造函數的靜態類(OP有一個方法),但你試圖實例化它的一個新實例嗎?並且你甚至沒有使用你似乎已經拋出的那種沒有方法的calculate方法身體? –

0

要麼改變的TestScores返回類型string或使用:

letterGrade1 = (string)TestScores(test1ScoreDecimal);