相关疑难解决方法(0)

隐式打字; 为什么只是局部变量?

有没有人知道或关心为什么隐式类型仅限于局部变量?

var thingy = new Foo();
Run Code Online (Sandbox Code Playgroud)

但为什么不......

var getFoo() {
    return new Foo(); 
}
Run Code Online (Sandbox Code Playgroud)

.net c# variables implicit-typing

22
推荐指数
2
解决办法
1106
查看次数

var in C# - 为什么它不能用作成员变量?

为什么不能在C#中的类级别拥有隐式类型的变量,以便立即分配这些变量?

即:

public class TheClass
{
    private var aList = new List<string>();
}
Run Code Online (Sandbox Code Playgroud)

它只是尚未实施的东西,还是存在未能实现原因的概念/技术原因?

.net c# variables clr implicit-typing

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

如何从类型到TryParse方法?

我的特殊问题:

我有一个字符串,它在配置类中指定了aribitrary类型

Config.numberType = "System.Foo";

在哪里Foo是类型DecimalDouble

Type.GetType(Config.numberType)用来返回相应的类型.

如何从该类型中获得能够使用System.Foo.TryParse()

一些其他相关的查询

  • TryParse()可以从System.Foo.TryParse()以及访问foo.TryParse().这是否意味着fooC#中的某种类?这对我来说似乎很奇怪int,double等等实际上不仅仅是修饰符关键字.
  • 如何在这些情况下声明变量?- var似乎并非普遍可用,即仅在本地范围等.

c# parsing types

8
推荐指数
3
解决办法
7097
查看次数

为什么我不能使用var声明一个字段

可能重复:
为什么类字段不能是var?

我想避免为局部变量输入类似字段的复杂/长类型定义.

我想知道为什么不能这样做?

public class Foo
{
    public var barField = new Dictionary<string, int>(); // Does not work

    public void Method()
    {
        var barLocal = new Dictionary<string, int>(); // Works
    }
}
Run Code Online (Sandbox Code Playgroud)

c# var static-typing

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

'var'无法找到

我收到错误"无法找到类型或命名空间名称'var'是否缺少using指令或程序集引用?""是的,我确实确保它全部小写.另外,我正在使用.Net framework 4.5.1我知道var在3.0之前不起作用.下面是我的代码的一部分,如果我取出var语句,没有错误或编译有问题.

using GalaSoft.MvvmLight;
using System;
using VKCatalyst.Model;

namespace VKCatalyst.ViewModel
{

    public class MainViewModel : ViewModelBase
    {
        private readonly IDataService _dataService;

        var i = 10; 
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然我看到过去已经解决了这个问题(我认为可能)但我认为留下像我这样多的新程序员可能是一个好主意,可能没有意识到他们'var'未被发现的原因是它不是一种方法.

.net c# visual-studio-2013

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

C# 如何创建和初始化 ValueTuples 的静态数组?

我想初始化 ValueTuples 的静态只读数组,我想使用此答案中的方法:

var tupleList = new (int Index, string Name)[]
  {
      (1, "cow"),
      (5, "chickens"),
      (1, "airplane")
  };
Run Code Online (Sandbox Code Playgroud)

但它不适用于静态成员,我必须声明 tupleList 的类型。我可以像这样将其作为元组来执行,但我不知道如何将其作为 ValueTuple 来执行:

static readonly Tuple<uint, string>[] tupleList= new Tuple<uint, string>[]
{
    new Tuple<uint, string>(0x1, "string1"),
    ...
};
Run Code Online (Sandbox Code Playgroud)

但如果我能找出正确的类型,我更愿意使用更干净的格式,到目前为止,我已经尝试了多种类型,但没有成功。

c# arrays tuples static-initialization

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