我有一個任務,我必須根據一些測驗撰寫一些代碼。基本上測驗已經寫好了,我必須寫代碼才能通過測驗。我知道這可能是一個愚蠢的問題,但我嘗試了所有我能想到的東西并到處搜索(對不起,如果這里有相關的帖子,但我找不到它。)所以我有多個測驗,但下面兩個我可以不明白。第一個是:
[Fact]
// This is the test
public void IsWrappedInDoubleQuotes()
{
Assert.True(IsJsonString(Quoted("abc")));
}
//And this is the method I wrote to pass the test
static bool DoubleQuoted(string input)
{
return input.StartsWith("\"") && input.EndsWith("\"");
}
直到現在一切看起來都很清楚。以下測驗之一是:
[Fact]
public void HasStartAndEndQuotes()
{
Assert.False(IsJsonString("\""));
}
我不明白為什么相同的功能在這個上不起作用。它失敗。(我有大約 21 個測驗要撰寫代碼,只是字串,不包括數字和數學運算子)。
他們都有開始和結束引號,這就是為什么如此令人困惑。先感謝您!!
uj5u.com熱心網友回復:
所以我假設您已經撰寫了IsJsonString實作,并且DoubleQuoted是您在該方法中用于確定輸入是否為有效 JSON 的標準之一,對吧?
我還假設Quoted將給定的輸入用雙引號括起來,因此abc被轉換為"abc",這是一個有效的字串表示形式。
在第二個測驗中,Quoted沒有在輸入上呼叫,所以你傳入了一個字符:". (\"只是一種告訴 C# 你實際上是指 a"并且你不是試圖在 C# 背景關系中結束字串文字的一種方式。) 其中兩個一起將“以引號開頭和結尾” ( "") 并且是一個有效的 JSON 字串,但單個"不是完整的字串文字。您定義的標準DoubleQuoted承認它在技術上以雙引號開頭并以雙引號結尾,但它沒有考慮它們是否是雙引號的同一個實體。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/435526.html
