小编Chr*_*St.的帖子

编译器警告CS1591:如何仅针对未记录的方法显示该警告?

如果公共成员未记录,C#编译器会显示警告(CS1591):

警告...缺少公开可见类型或成员的XML注释...

这包括所有属性,方法,类,枚举值等.

问题:有没有办法将该类型的警告配置为仅标记未记录的方法?我使用Visual Studio 2010 Ultimate和ReSharper 8.2.

例:

public class MyClass // warning
{
    public MyClass(int x) { ... } // warning

    public void DoSomething() { ... } // warning

    public int MyProp { get; private set; } // prevent this warning
}

public enum MyEnum // warning
{
    X = 0, // prevent this warning
    Y = 1 // prevent this warning
}
Run Code Online (Sandbox Code Playgroud)

c# compiler-warnings

16
推荐指数
3
解决办法
7904
查看次数

如何在Visual Studio 2010中编写多行待办事项

我想在多行上编写待办事项(将显示在VS的任务列表中).像这样的东西:

//TODO: This is a todo over
// more than one line!
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

我也使用ReSharper,如果它很重要的话.

visual-studio-2010

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

C#如何存储字符串

我想知道在哪里或如何存储由"Hello World"编写的字符串值.

例如:

例1:

radLabel1.Text = "Hello";
radLabel2.Text = "Hello";
radLabel3.Text = "Hello";
Run Code Online (Sandbox Code Playgroud)

例2:

string strTemp = "Hello";
radLabel1.Text = strTemp;
radLabel2.Text = strTemp;
radLabel3.Text = strTemp;
Run Code Online (Sandbox Code Playgroud)

我知道第二种方式是最有用的,我这样做,但我想知道示例1的字符串是如何存储在RAM中的.我想虽然它们是相同的,但是在RAM中为它们创建了三个地方来存储它们.但是在示例2中,仅为示例2的字符串创建了一个位置,并且访问了该地址.我对吗 ?你能解释一下这个或将变量存储在RAM中吗?

c#

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

为什么'Int32 value__'显示为枚举成员?

我正在对我声明的枚举进行一些检查,我想知道为什么Int32 value__在每个声明的枚举中始终显示为第一个枚举成员,因为它是成员的类型而不是成员本身?

要测试的示例代码:

[TestMethod]
public void TestEnumMember()
{
    var type = typeof(Colors);
    var info = type.GetTypeInfo();
    var members = info.DeclaredMembers.ToArray();
    foreach (var member in members)
    {
        Debug.WriteLine(member);
    }
}

public enum Colors
{
    Red,
    Blue,
    Green
}
Run Code Online (Sandbox Code Playgroud)

输出:

Debug Trace:
Int32 value__
Colors Red
Colors Blue
Colors Green
Run Code Online (Sandbox Code Playgroud)

c# enums

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

在构建过程后始终执行自定义 MSBuild 任务

我创建了一个在构建操作后执行的自定义任务。

<Target Name="AfterBuild" />
<Target Name="MyTarget"
        AfterTargets="AfterBuild">
  <MyTask ... />
</Target>
Run Code Online (Sandbox Code Playgroud)

问题:是否可以执行任务,如果构建操作被触发,但没有执行,因为项目中没有更改/不需要再次构建?

换句话说:我想总是在构建过程结束时执行任务,即使项目没有再次构建。

更新:使用AfterTargets="Build" 或设置属性<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>没有帮助。

第二次触发构建过程后,我只得到输出: Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped

msbuild msbuild-task visual-studio visual-studio-2015

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

如何修改foreach循环中的变量?

我有Map以下示例内容:

var replacements: Map[String, String] = Map("a" -> "1", "b" -> "2", "c" -> "3")
Run Code Online (Sandbox Code Playgroud)

以及以下方法:

def censor(text: String, replacements: Map[String, String]): String = {
  replacements.keys.foreach(key => text = text.replace(key, replacements(key)))
  return text
}
Run Code Online (Sandbox Code Playgroud)

该方法应该用其赋值的值替换所有key找到的s .textreplacements

问题是循环text = text.replace(key, replacements(key))内的命令foreach.

所以我的问题是:如何修改循环text内的变量foreach

foreach scala

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

C++/CLI中的"long"类型与C#有什么区别?

C++/CLI项目中,我有方法void DoSomething(long x);.如果我想在用C#编写的任何单元测试中使用它,则方法参数x显示为类型int.

为什么我必须更改签名才能在单元测试(C#)中void DoSomething(long long x);使用类型参数long

c# types c++-cli long-integer

0
推荐指数
2
解决办法
1258
查看次数