相关疑难解决方法(0)

C#的隐藏功能?

在我从这个问题中学到以下内容后,我想到了这一点:

where T : struct
Run Code Online (Sandbox Code Playgroud)

我们C#开发人员都知道C#的基础知识.我的意思是声明,条件,循环,运算符等.

我们中的一些人甚至掌握了Generics,匿名类型,lambdas,LINQ等......

但是C#粉丝,瘾君子,专家几乎都不知道C#最隐藏的功能或技巧是什么?

以下是到目前为止显示的功能:


关键词

属性

c# hidden-features

1475
推荐指数
230
解决办法
68万
查看次数

C#switch语句限制 - 为什么?

在编写switch语句时,在case语句中可以打开的内容似乎存在两个限制.

例如(是的,我知道,如果你正在做这种事情,这可能意味着你的面向对象(OO)架构是不确定的 - 这只是一个人为的例子!),

  Type t = typeof(int);

  switch (t) {

    case typeof(int):
      Console.WriteLine("int!");
      break;

    case typeof(string):
      Console.WriteLine("string!");
      break;

    default:
      Console.WriteLine("unknown!");
      break;
  }
Run Code Online (Sandbox Code Playgroud)

这里switch()语句失败,带有'一个预期的整数类型的值',case语句失败并带有'a expected value is expected'.

为什么会有这些限制,以及基本理由是什么?我看不出有任何理由switch语句具有只能屈从于静态分析,为什么在接通的值必须是完整的(即原语).理由是什么?

c# switch-statement

136
推荐指数
8
解决办法
10万
查看次数

ToLowerInvariant()有什么问题?

我有以下代码行:

var connectionString = configItems.
                Find(item => item.Name.ToLowerInvariant() == "connectionstring");
Run Code Online (Sandbox Code Playgroud)

VS 2010代码分析告诉我以下内容:

警告7 CA1308:Microsoft.Globalization:在方法中...用String.ToUpperInvariant()替换对'string.ToLowerInvariant()'的调用.

这意味着ToUpperInvariant()更可靠吗?

.net c# .net-4.0

63
推荐指数
2
解决办法
2万
查看次数

C#的switch语句区分大小写.有没有办法切换它,以便它变得不区分大小写?

C#的switch()语句区分大小写.有没有办法切换它,以便它变得不区分大小写?

==============================

谢谢,但是,我不喜欢这些解决方案;

因为案例条件是一个变量,我不知道它们是否都是UPPER或更低.

c# case-sensitive switch-statement

4
推荐指数
2
解决办法
2万
查看次数

在C#中使用带有Equals方法的Switch case

有没有办法将下面的if else条件转换为C#中的Switch.我使用Equals方法检查类型,但无法转换为switch case.

if (fi.FieldType.Equals(typeof(int)))
{
    fi.SetValue(data, BitConverter.ToInt32(buffer, 0));
}
else if (fi.FieldType.Equals(typeof(bool)))
{
    fi.SetValue(data, BitConverter.ToBoolean(buffer, 0));
}
else if (fi.FieldType.Equals(typeof(string)))
{
    byte[] tmp = new byte[la.length];
    Array.Copy(buffer, tmp, tmp.Length);
    fi.SetValue(data, System.Text.Encoding.UTF8.GetString(tmp));
}
else if (fi.FieldType.Equals(typeof(double)))
{
    fi.SetValue(data, BitConverter.ToDouble(buffer, 0));
}
else if (fi.FieldType.Equals(typeof(short)))
{
    fi.SetValue(data, BitConverter.ToInt16(buffer, 0));
}
Run Code Online (Sandbox Code Playgroud)

请帮助我们....

c# asp.net

4
推荐指数
1
解决办法
678
查看次数

比较 switch-case 块中具有不同大小写的 C# 字符串

我有一组 switch-case 语句,例如“你好,你好吗”,“嗨,我能为你做什么?”。如果用户的输入是逐字输入,即:“Hello, how are you”,则匹配有效。

但如果用户输入“Hello, How are You”,则匹配失败。

我希望如果用户的输入相同但大小写不同,那么它应该匹配。IE

"Hello, how are you" == "Hello, How are You" == "HELLO, how are YOU"
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

c# asp.net

3
推荐指数
1
解决办法
5029
查看次数

C#Switch语句

我是编程新手,
我开始学习C#语言

        Console.WriteLine("yes or no ?");
        string answer = Console.ReadLine();
        switch (answer)
        { 
            case "yes":
                // some code 
                break;
            case "no":
                //some code 
                break;
            default:
                //some code 
                break;
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果用户插入了他的答案"是","是","是"或者他写"是"的任何方式,程序将执行默认代码,因为它不完全匹配我写的小写"是" switch case ..是否有一种先进的方法让程序检测到"是",大写字母与"是"的答案相同,然后执行大小写为"是"的块代码.

我的第二个问题我选择C#作为我的第一语言,因为Unity3d游戏引擎支持这种语言所以我决定先学习语言,然后在unity3d中使用它是一个正确的决定

我很抱歉,如果我的问题似乎很愚蠢,但正如我说的新手

c# console-application switch-statement unity-game-engine

1
推荐指数
1
解决办法
5583
查看次数