如果公共成员未记录,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) 我想在多行上编写待办事项(将显示在VS的任务列表中).像这样的东西:
//TODO: This is a todo over
// more than one line!
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
我也使用ReSharper,如果它很重要的话.
我想知道在哪里或如何存储由"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中吗?
我正在对我声明的枚举进行一些检查,我想知道为什么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) 我创建了一个在构建操作后执行的自定义任务。
<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
我有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?
在C++/CLI项目中,我有方法void DoSomething(long x);.如果我想在用C#编写的任何单元测试中使用它,则方法参数x显示为类型int.
为什么我必须更改签名才能在单元测试(C#)中void DoSomething(long long x);使用类型参数long?
c# ×4
c++-cli ×1
enums ×1
foreach ×1
long-integer ×1
msbuild ×1
msbuild-task ×1
scala ×1
types ×1