初学者使用C#,帮助解释代码片段

时间:2013-09-12 13:07:59

标签: c#

首先,我需要清楚我是C#的新手。我相信一种实用的方法,所以我把阅读与实际例子混合在一起。我也喜欢阅读代码并尝试真正理解它。然而这一件事让我感到困惑。

我检查了我的书籍和互联网,但我真的不知道要搜索什么才能找到它。

无论如何,这是代码。

for (int t = 0; t < res.Length / 2; t++)
{
    if (res[t] != res[res.Length -t -1]) Initial = false;
}

res未在代码中声明为数组,但在if语句中为res[t]。我在其他地方阅读了一些关于“索引”的内容,但没有进一步深入,所以现在我请求你帮我解释这个小技巧。希望这个解释不会让我心碎。

提前致谢。

4 个答案:

答案 0 :(得分:2)

C#中的字符串实际上是字符数组。这就是为什么您能够使用带有索引值的[]在字符串中找到单个字符。

答案 1 :(得分:2)

如果Initial不是回文,则此代码将false设置为ret。例如:

var res = new int[] {1,2,3,4,5, 6}; // not palindrome
var res1 = new int[] {1,2,3,3,2, 1}; // palindrome
var resString = "notpalindrome";
var resString1 = "asdfgfdsa"; // palindrome

答案 2 :(得分:0)

使用调试器查看正在发生的事情。

我的猜测是在位置(L是字符串的长度)[0,L-1],[1]比较字符串字符(res,字符串“行为”就像char的数组一样) ,L-2],[2,L-3],......并且当它们不相同时将Initial设置为假。

答案 3 :(得分:0)

在c#中,当您构建类时,可以使它们“可索引”。 这意味着您可以通过索引来访问基础数据,就像使用数组一样。

假设您有一个DuckCollection类,它在内部存储Duck[] duckArray数组。现在,您希望DuckCollection课程的用户能够var duck = duckCollection[0]代替var duck = duckCollection.duckArray[0]

你这样做:

public class DuckCollection
{
    Duck[] duckArray;

    public Duck this[int index]    // Indexer declaration
    {
        return duckArray[index];
    }


}

C#中的许多类实现了这种行为,比如字符串,列表等。这就是为什么你可以访问字符串上的各个元素(即char s),就像它是一个数组一样。

有关索引器的更多信息:http://msdn.microsoft.com/en-us/library/2549tw02.aspx

相关问题