我有一个枚举
string name;
public enum Color
{
Red,
Green,
Yellow
}
Run Code Online (Sandbox Code Playgroud)
如何在加载时将其设置为NULL.
name = "";
Color color = null; //error
Run Code Online (Sandbox Code Playgroud)
编辑:我的不好,我没有正确解释.但所有与可空的相关的答案都是完美的.我的情况是如果,我已经在类中使用其他元素(例如名称等)获取/设置枚举.在页面加载时,我初始化类并尝试将值默认为null.这是场景(代码在C#中):
namespace Testing
{
public enum ValidColors
{
Red,
Green,
Yellow
}
public class EnumTest
{
private string name;
private ValidColors myColor;
public string Name
{
get { return name; }
set { name = value; }
}
public ValidColors MyColor
{
get { return myColor; }
set { myColor = value; }
}
}
public partial class _Default : …Run Code Online (Sandbox Code Playgroud) 我想恢复SVN工作副本中的目录和所有子目录,以便它们与存储库匹配,但我不想触摸这些目录中的任何文件.
我的一个SVN应用程序递归地在我的工作副本中的每个目录上设置了一个SVN属性,但我想恢复这些更改以阻止它突出显示它们并尝试将更改提交给SVN属性.简单地改变它以匹配HEAD是行不通的.
有任何想法吗?我已经阅读了各种SVN资源,但它们似乎都没有处理这种边缘情况.
我正在尝试使用IP地址SAN创建请求.这是负责创建CAlternativeName的函数:
public static CAlternativeNameClass GetCurrentIpName() {
//get current machine IP address
IPAddress ip = GetCurrentIp();
if (ip == null) {
return null;
}
try {
CAlternativeNameClass nameClass = new CAlternativeNameClass();
nameClass.InitializeFromString(AlternativeNameType.XCN_CERT_ALT_NAME_IP_ADDRESS, ip.ToString());
return nameClass;
} catch (Exception e) {
Console.WriteLine(e);
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我收到了下一个错误:
System.ArgumentException: Value does not fall within the expected range.
at CERTENROLLLib.CAlternativeNameClass.InitializeFromString(AlternativeNameType Type, String strValue)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Marshal.DestroyStructure在.NET Framework中标有Pure属性,但是我不确定为什么它在调用它的上下文中明显有效.
即使状态没有直接修改指针实例本身,也会修改状态(指针被释放).
问题中隐含的是:开发人员是否真诚地将某些东西标记为纯粹,即使她知道它间接地修改了上下文的状态?
从我通常的 VC++ 领域冒险进入 GCC 的世界(通过 MINGW32)。试图创建一个主要由 NOP 组成的 Windows PE,ala:
for(i = 0; i < 1000; i++)
{
asm("nop");
}
Run Code Online (Sandbox Code Playgroud)
但是要么我使用了错误的语法,要么编译器正在通过它们进行优化,因为这些 NOP 无法在编译过程中幸存下来。
我正在使用 -O0 标志,否则为默认值。关于如何诱使编译器保持 NOP 完好无损的任何想法?
我正在尝试用C#进行跨线程调用.
每当我从一个从线程B调用的静态方法调用在线程A的上下文中创建的对象的方法时,该方法总是在线程B中运行.我不希望这样,我希望它在与线程相同的线程上运行我正在调用其方法的对象.
Invoke适用于UI调用,我读过很多文章和SO答案,涉及不同的交叉线程Forms/WPF调用方式.无论我尝试什么(事件处理,委托等)线程A的对象的方法将始终在线程B中运行,如果它由线程B调用.
我应该在图书馆的哪个部分来解决这个问题?如果相关,则线程B当前"旋转",从网络端口读取并偶尔通过在线程A中创建并使用ParameterizedThreadStart传入的委托调用线程A的对象方法.
我不打算改变范例,只是从一个线程(线程B)向另一个线程(线程A)发送消息(调用方法的请求).
编辑:
我的问题是"我应该在图书馆的哪个部分来解决这个问题?" 答案似乎是没有.如果我想清楚地描述消费和民意调查,我将不得不编写自己的代码来处理这个问题.
Double dblValue = 0.0001;
Boolean a = (dblValue >= (1 / 1000));
Boolean b = (dblValue >= 0.001);
Console.WriteLine("dblValue >= (1 / 1000) is " + a);
Console.WriteLine("dblValue >= 0.001 is " + b);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
上面的C#代码将'a'评估为true,将'b'评估为false.在VB.NET中,等效代码将'a'评估为false,将'b'评估为false.为什么'a'会评价为真?
我在这里缺少一个隐式转换 - 为什么它不影响VB.NET(严格)?