相关疑难解决方法(0)

C#的正确版本号是多少?

C#的正确版本号是多少?什么时候出来?为什么我找不到关于C#3.5的任何答案?

这个问题主要是为了帮助那些使用不正确的版本号搜索答案的人,例如C#3.5.希望任何未能找到错误版本号的答案的人都会找到这个问题,然后再使用正确的版本号进行搜索.

.net c# .net-framework-version visual-studio compiler-version

2422
推荐指数
12
解决办法
33万
查看次数

如何获取csc.exe路径?

有没有办法获取最新的.NET Framework的csc.exe的路径?

该文件通常位于:c:\ Windows\Microsoft.NET\Framework\vX.X.XXX但问题是可以安装多个版本+有32位和64位版本.

对此有何解决方案?

.net c# csc

51
推荐指数
6
解决办法
8万
查看次数

C#7 ValueTuple编译错误

我正在使用VS2017 RC,我的应用程序以net framework 4.6.1为目标.

我有两个引用System.ValueTuple 4.3的程序集

MyProject.Services MyProject.WebApi

在MyProject.Services中,我有一个类,有这样的方法

public async Task<(int fCount, int cCount, int aCount)> GetAllStatsAsync()
{
    // Some code...
    return (fCount, cCount, aCount);
}
Run Code Online (Sandbox Code Playgroud)

在MyProject.WebApi中,我有一个使用此方法的控制器:

public async Task<HttpResponseMessage> GetInfoAsync()
{
    // Some code...
    var stats = await _myClass.GetAllStatsAsync();

    var vm = new ViewModel
             {
                 FCount = stats.fCount,
                 CCount = stats.cCount,
                 ACount = stats.aCount
             };

     return Request.CreateResponse(HttpStatusCode.OK, vm);
}
Run Code Online (Sandbox Code Playgroud)

Intellisense正在工作并解构元组,但是当我编译它时失败而没有错误列表窗口中的任何错误.在输出窗口中我有这个错误:

2> MyController.cs(83,31,83,40):错误CS1061:'ValueTuple'不包含'fCount'的定义,并且没有扩展方法'fCount'接受类型'ValueTuple'的第一个参数可以找到(你错过了using指令或程序集引用吗?)2> MyController.cs(84,39,84,49):错误CS1061:'ValueTuple'不包含'cCount'的定义,也没有扩展方法'cCount'接受可以找到类型为'ValueTuple'的第一个参数(你是否缺少using指令或汇编引用?)2> MyController.cs(85,35,85,40):错误CS1061:'ValueTuple'不包含定义对于'aCount'并且没有扩展方法'aCount'可以找到接受类型'ValueTuple'的第一个参数(你是否缺少using指令或汇编引用?)

我尝试添加DEMODEMO_EXPERIMENTAL构建标志但仍然失败.

什么是错的?

编辑1:

此代码有效,统计数据解析得很好.我可能遇到了一个bug.

public async Task<HttpResponseMessage> GetInfoAsync()
{
    // …
Run Code Online (Sandbox Code Playgroud)

c# c#-7.0

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

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

如何在命令行中确定C#编译器版本

是否有任何命令来获取C#编译器版本?该csc命令接缝有没有选项,以显示编译器版本.

PS当我csc开发人员命令提示符中输入命令对于VS2015,它返回:

Microsoft (R) Visual C# Compiler version 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.
Run Code Online (Sandbox Code Playgroud)

但是我很确定我的C#编译器比1.3更新!

c#

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

如何告诉 Roslyn C# 编译器使用特定版本的 .NET?

我发现csc.exeRoslyn 附带的二进制文件可以采用-langversion:<string>命令行参数来设置我想要编译的 C# 版本。但是如何选择我希望编译器使用的 .NET 版本?

编译过程适用于我使用一些 .NET SQL Server 功能的简单测试程序,所以我知道编译器以某种方式在我的计算机上使用了 .NET 版本。我的C:\Windows\Microsoft.NET\Framework目录中有多个 .NET 版本,我假设编译器正在使用其中之一。我想明确设置编译器在编译我的程序时使用哪个版本的 .NET。

注意:如果您能详细说明编译器如何首先选择一个版本,那也将不胜感激。

.net csc roslyn

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

将 System.CommandLine 与自定义 Main() 签名结合使用

我正在尝试使用System.CommandLine并安装了 nuget 软件包:

Install-Package System.CommandLine -Version 2.0.0-beta1.21308.1
Run Code Online (Sandbox Code Playgroud)

根据这篇 Microsoft 文章,我应该能够使用我的签名编写一个 Main() 方法,并且它应该会自动神奇地工作:

static void Main(FileInfo input, FileInfo output)
{
    Console.WriteLine($"Hello World! {input} {output}");
}
Run Code Online (Sandbox Code Playgroud)

但是我的 Main() 方法签名被拒绝,我得到了CS5001: Program does not contain a static 'Main' method suitable for an entry point.

难道我做错了什么?根据这篇文章,这System.CommandLine应该是如何工作的。

c# command-line system.commandline

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

如何使用数据注释设置默认值

我正在学习ASP.Net MVC 5,我想使用boolean属性的数据注释设置默认值.另外,我不想使用构造函数来设置默认值.可能吗?

public class BalanceDetailMV
{
    public BalanceDetailMV()
    {
        this.isUnitNoEmptyInAllRow = true; // I do not want this
    }
    public bool isUnitNoEmptyInAllRow { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的魅力:

[DefaultValue("true")]
 public bool isUnitNoEmptyInAllRow { get; set; }
Run Code Online (Sandbox Code Playgroud)

但上面不起作用.请指导我.

c# asp.net asp.net-mvc asp.net-mvc-5

3
推荐指数
2
解决办法
6388
查看次数

我用的是什么版本的C#?

我如何判断我正在使用的C#版本?我正在使用带有xCode的Mac.我问的原因是因为我有一本书"C#3.0",它说你可以像这样声明一个多维数组.

int [,] num = new int [2,2];

当我尝试这样做时,我得到语法错误.我是否需要导入除基础之外的其他标题?

c#-3.0

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

如何在 rutime 上获取 c# 版本

如何在运行时从我的代码中获取 c# 版本?我使用.net核心。例如,我可以使用以下代码获取框架版本:

FrameworkName = Assembly
    .GetEntryAssembly()?
    .GetCustomAttribute<TargetFrameworkAttribute>()?
    .FrameworkName
Run Code Online (Sandbox Code Playgroud)

我需要类似 C# 版本的东西。

c# .net-core

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

c#将现有类转换为正确使用属性

我有以下课程:

class Given
{
    public string text = "";
    public List<StartCondition> start_conditions = new List<StartCondition>();
};

class StartCondition
{
    public int index = 0;
    public string device = "unknown";
    public string state = "disconnected";
    public bool isPass = false;
};
Run Code Online (Sandbox Code Playgroud)

我想将它们转换为c#属性(使用get;和set;)

看看这个问题:什么是get-set-syntax-in-c,似乎我可以像这样使一个属性变得简单易行:

class Given
{
    public string text { get; set; }
    public List<StartCondition> start_conditions { get; set; }
};

class StartCondition
{
    public int index { get; set; }
    public string device { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

c# containers properties

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

如何以编程方式检测C#(不是CLR)版本?

我将C#用于.NET。我知道如何以编程方式检测.NET程序集的CLR版本,但是无法找到如何以编程方式检测代码中的C#版本。有人知道吗?TIA。

.net c#

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