C# - {string[0]} 是什么意思?

6

设置:

今天有些迷糊。

我有以下代码:

UserRoles = Roles.GetRolesForUser(username);

问题:

如果用户名是空字符串("",用户未登录),则在检查立即窗口中的UserRoles值时,会显示:

{string[0]}

问题:

{string[0]}是什么?

我该如何复制这个值以测试没有登录用户(用户名 == "")的代码情况?

注意:我已经在谷歌上搜索过,但没有结果。


1
非常感谢所有回答这个问题的人。选择给饼干的人实在是太难了,所以我决定按照大家的投票结果来决定。 - awrigley
5个回答

9

GetRolesForUser返回一个角色数组,因此立即窗口中的“String [0]”只是意味着它知道返回类型是一个数组(在这种情况下为字符串),但没有条目(因为空用户没有返回角色)。


@awrigley 你想要复制什么? - Wouter de Kort
请查看我的答案,了解如何创建一个空字符串数组。 - Thorsten Dittmar
Thorsten的示例将复制一个空字符串对象。如果您想在UserRoles对象中获取它,我猜您可以在GetRolesForUsers调用中传递一个空字符串,或者使用Thorsten的"= new string[0];"。 - Ray K
我只是想测试用户未登录系统的情况。因此,我需要能够创建一个零条目的数组。我猜new string可以吗?我会尝试一下。 - awrigley
@awrigley - 那应该可以工作 - 或者您可以硬编码一个您知道未登录的用户名。 - Ray K
显示剩余2条评论

4
如果您查看Roles.GetRolesForUser(string)的文档,您会发现它返回一个字符串数组:string[]{string[0]}意味着您有一个零元素的数组。

3

这是一个空字符串数组。你可以像这样创建一个空的字符串数组:

string[] emptyArray = new string[0];

1

这是立即窗口显示空字符串数组的方式:

[Test]
public void StringsTest()
{
    var strings = new string[] {};
}

在你的测试代码中,你可以Mock IRoles,并让GetRolesForUser(username)返回一个新的string[] {}。

1

这意味着该值是一个字符串数组,其中没有任何元素


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接