小编JBS*_*rro的帖子

如何告诉代码合同指定为参数的委托是Pure?

请考虑以下代码:

int SomeField;
void Foo([Pure] Func<int, object> getData)
{
    Contract.Requires(getData != null);
    Contract.Requires(getData(this.SomeField) != null);
}
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

在方法合同中检测到对方法的调用' System.Func'2<System.Int32,System.Object>.Invoke(System.Int32)' '[Pure]Foo(System.Func'2<System.Int32,System.Object>)

这个警告非常有意义.但是我还是想在合同中给代表打电话而不是警告(假设我的警告变成了错误).我如何实现这一目标?

我尝试了该属性Pure,如示例所示,但这不起作用.

我也想知道为什么PureAttribute可以在参数上指定.如果参数的类型不是委托类型是没有意义的,即使它是,它也不像我期望的那样工作,如上所述.

c# parameters delegates code-contracts

5
推荐指数
0
解决办法
1121
查看次数

如何'提取'.vsix文件?(即不安装)

标题说明了一句:如何"提取".vsix文件?

我正在关注一个教程,并将其作为步骤说明,但我不理解它并且它不易于谷歌.

vsix vsixmanifest

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

导入片段时"缺少或未指定的语言属性"

在VS2017(v15.7.5)的代码段管理器中导入包含片段的目录时,在"输出"窗格中我收到警告

Missing or unspecified Language attribute

即使存在语言属性.我甚至在导入微软自己的代码片段时得到了这个.这些片段适用于C#.

如何导入片段?

code-snippets visual-studio-2017

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

如何防止vscode/ms-python清除测试结果?

python 测试的结果仅在 VSCode MS python 扩展中缓存很短的时间。无论它们成功还是失败,都只会缓存一小段时间,然后它们会再次恢复为问号。

如何保留测试结果?


我认为这与我在“Python 测试日志”的输出中看到的一些日志有关,其中显示了许多(~30)行:

python /home/.../.vscode/extensions/ms-python.python-2020.6.89148/pythonFiles/testing_tools/run_adapter.py discover pytest -- --rootdir /home/projectdir --cache-clear -s
Run Code Online (Sandbox Code Playgroud)

特别--cache-clear是可疑,但我不知道是什么触发了这些输出。

所以我的问题是:如何--cache-clear从通话中删除?或者也许完全发生了其他事情?

python testing visual-studio-code

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

Resharper bug?不正确的"表达总是如此"

我相信我在resharper中发现了一个错误.假设我的代码如下:

int[] someArray = new int[10];
while (someArray  != null)
{
     //perhaps some other usage of someArray here, but not assigning it.
     SomeMethod(ref someArray );
}
Run Code Online (Sandbox Code Playgroud)

如果局部变量some​​Array在其作用域中未指定为null,则该语句someArray != null将始终为true.但是,当该变量作为ref参数提供给另一个方法时,情况并非如此,因为它可能在该方法中被赋值为null.然后resharper错误地认为someArray != null仍然是真的.

我以为我会分享这些信息,因为我不确定我应该怎么做.首先,我希望有人验证这个错误,然后将其发送给JetBrains?

c# resharper expression-evaluation

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

vscode 的第一个扩展教程:命令未列出/断点未命中

问题描述

我按照vscode 教程创建扩展,但我无法重现“命令面板中弹出的命令”的行为,也无法命中断点。

我的脚步

  • 我逐字按照教程进行操作,即
    • yo code
    • New Extenion (TypeScript)
    • ...
    • 一直到包管理器:npm
  • 打开项目code
  • F5(让我们忽略我得到的小错误,即没有安装问题匹配器。在安装推荐的扩展(eamodio/vscode-tsl-problem-matcherMicrosoft/vscode-eslint)后它就消失了。
  • 弹出扩展主机。没有错误。
  • ctrl+ shift+ p,hello

不幸的是,该命令hello world不会出现在列表中。断点也没有被命中extension.ts(就像教程的这一部分一样)。断点是不可命中的,即它们的内部是白色而不是红色。看来扩展没有被加载。我究竟做错了什么?我该如何修复它?

我尝试过的

我重试了多次尝试,三次检查我的拼写并遵循教程。我尝试重新启动电脑。我尝试过使用和不使用 webpack 捆绑。我重跑了tsc。我将 typescript 降级到 4.7.4(稍后它警告说 4.8.2 不受官方支持)

一些可能相关的版本号:Windows 10、npm 8.5.5、yo 4.3.0、vscode 1.69.2

yo vscode-extensions

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

启动 dotnet 失败(“dotnet”不是符号链接文件)

用于调试 ASP.NET core 的默认 vscode 配置包含以下内容:

"configurations": [
{
    "name": ".NET Core Launch (web)",
    "type": "coreclr",
    "request": "launch",
    "preLaunchTask": "build",
    ...
Run Code Online (Sandbox Code Playgroud)

对我来说失败preLaunchTask并出现以下错误:

The terminal process failed to launch: Path to shell executable "dotnet" is not a file of a symlink.
Run Code Online (Sandbox Code Playgroud)

我以前遇到过这个问题,不是在preLaunchTask主程序执行上而是在主程序执行上。我可以通过替换所有"dotnet"-> "/usr/bin/dotnet"in ~/.vscode/extensions/ms-dotnettools.csharp-1.**.*/dist/extensions.js+ vscode 重新启动来解决这个问题。但是,此解决方法不适用于preLaunchTask. (并且必须为该扩展的每次更新执行此操作,这很烦人)。

鉴于我是一个 Linux 菜鸟,它可能与omnisharp/vscode 无关,但可能是我在 Ubuntu 18.04 中做错的事情。

有谁知道该错误意味着什么以及如何解决它?或者甚至如何调试这个问题?

我已经重新安装了 vscode、.net5,并且我的全局$PATH环境确实包含/home/<username>/.dotnet/tools:/usr/bin/dotnet. 除此之外我不知道该怎么办。

process omnisharp visual-studio-code asp.net-core ubuntu-18.04

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

Visual Studio令人烦恼的消息:"定位源"

在调试C#Consoleproject时,大约每小时一次,我得到以下错误,令人难以置信的20-30秒:

一个

奇怪的是,源文件存储在本地SSD硬盘驱动器上....这是一个工作流程破坏性的完全不可接受的麻烦.谷歌搜索没有任何意义,你知道如何摆脱这个吗?

dialog visual-studio-2012

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