相关疑难解决方法(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#中,有一个名为default的关键字,就像这样做

object obj = default(Decimal);
Run Code Online (Sandbox Code Playgroud)

但我有一个Type(称为myType)的实例,如果我这样说,

object obj = default(myType);
Run Code Online (Sandbox Code Playgroud)

它不起作用

这样做有什么好办法吗?我知道一个巨大的开关块可以工作,但这不是一个好的选择.

c# types default

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

在C#中使用`default`关键字有什么用?

  1. defaultC#中关键字的用途是什么?
  2. 它是在C#3.0中引入的吗?

c#

69
推荐指数
5
解决办法
3万
查看次数

c#中泛型类型的默认值

Dictionary.TryGetValue的文档说:

当此方法返回时,[value参数]包含与指定键关联的值(如果找到键); 否则,value参数类型的默认值.此参数未初始化传递.

我需要在课堂上模仿这个.如何找到T型的默认值?


如何修改此问题以使其显示在搜索中?

返回默认值的确切重复.(C#)

c# generics default-value

45
推荐指数
3
解决办法
3万
查看次数

构建列表中项目计数的字典

我有一个包含一堆可以多次出现的字符串的List.我想获取此列表并构建列表项的字典作为键和它们的出现次数作为值.

例:

List<string> stuff = new List<string>();
stuff.Add( "Peanut Butter" );
stuff.Add( "Jam" );
stuff.Add( "Food" );
stuff.Add( "Snacks" );
stuff.Add( "Philosophy" );
stuff.Add( "Peanut Butter" );
stuff.Add( "Jam" );
stuff.Add( "Food" );
Run Code Online (Sandbox Code Playgroud)

结果将是包含以下内容的字典:

"Peanut Butter", 2
"Jam", 2
"Food", 2
"Snacks", 1
"Philosophy", 1
Run Code Online (Sandbox Code Playgroud)

我有办法做到这一点,但似乎我没有利用C#3.0中的好东西

public Dictionary<string, int> CountStuff( IList<string> stuffList )
{
    Dictionary<string, int> stuffCount = new Dictionary<string, int>();

    foreach (string stuff in stuffList) {
        //initialize or increment the count for this item
        if (stuffCount.ContainsKey( stuff )) { …
Run Code Online (Sandbox Code Playgroud)

c# dictionary list

9
推荐指数
2
解决办法
9440
查看次数

如何以非泛型方式获取类型的默认值?

我知道"default"关键字返回静态确定类型的默认值,如本问题中所示.

但是,给定一个类型的实例,是否有一种简单的方法来动态获取此类型的默认值?我发现谷歌搜索,而唯一的办法是这样:

static object DefaultValue(Type myType)
{
    if (!myType.IsValueType)
        return null;
    else
        return Activator.CreateInstance(myType);
}
Run Code Online (Sandbox Code Playgroud)

但是如果可能的话我想避免使用Activator类.

c# default-value

5
推荐指数
2
解决办法
3235
查看次数