我有一个泛型类,应该允许任何类型,原始或其他.唯一的问题是使用default(T).在值类型或字符串上调用default时,它会将其初始化为合理的值(例如空字符串).调用default(T)对象时,它返回null.由于各种原因,我们需要确保如果它不是基本类型,那么我们将有一个类型的默认实例,而不是 null.这是尝试1:
T createDefault()
{
    if(typeof(T).IsValueType)
    {
        return default(T);
    }
    else
    {
        return Activator.CreateInstance<T>();
    }
}
Run Code Online (Sandbox Code Playgroud)
问题 - 字符串不是值类型,但它没有无参数构造函数.那么,目前的解决方案是:
T createDefault()
{
    if(typeof(T).IsValueType || typeof(T).FullName == "System.String")
    {
        return default(T);
    }
    else
    {
        return Activator.CreateInstance<T>();
    }
}
Run Code Online (Sandbox Code Playgroud)
但这感觉就像一块垃圾.有没有更好的方法来处理字符串案例?
在VB.net代码中,我使用SQL参数创建请求.我将DateTime参数设置为DateTime.Now值,我的请求会是什么样的?
UPDATE table SET date = "2010/12/20 10:25:00";
Run Code Online (Sandbox Code Playgroud)
要么
UPDATE table SET date = GETDATE();
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,我确信每条记录都将设置为完全相同的时间.在第二种情况下,它取决于DBMS如何处理请求.这引出了我的第二个问题:SQL Server在使用NOW()更新大表时是否设置了相同的日期和时间?
编辑:由GETDATE()替换NOW()(在SQL Server中不存在).
我有一些与RabbitMQ一起运行的队列.其中一些现在没用,我怎么能删除它们?不幸的是我没有设置auto_delete选项.
如果我现在设置它,它会被删除吗?
有没有办法现在删除这些队列?
我刚刚注意到Dictionary.TryGetValue(TKey key, out TValue value)并且很好奇哪个是从Dictionary中检索值的更好方法.
我传统上做了:
if (myDict.Contains(someKey))
     someVal = myDict[someKey];
     ...
Run Code Online (Sandbox Code Playgroud)
除非我知道它有必要在里面.
做的更好:
if (myDict.TryGetValue(somekey, out someVal)
    ...
Run Code Online (Sandbox Code Playgroud)
哪种更好的做法?一个比另一个快吗?我会想象Try版本会慢一些,因为它'swallowing'是一个try/catch本身并将其用作逻辑,不是吗?
是否有类似的东西:
AppDomain.CurrentDomain.GetAssemblyByName("TheAssemblyName")
Run Code Online (Sandbox Code Playgroud)
因此AppDomain.CurrentDomain.GetAssemblies(),我们可以直接获取特定的程序集,而不是循环.
我目前有一个类似下面的Combobox:
//XAML
<ComboBox>
<ComboBoxItem> Awake & Alive</ComboBoxItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
这会引发错误:以&符号'&'开头的实体引用或序列必须以分号';'结束.
我假设我错过了某种转义序列,允许我使用&.如何设置此组合框的内容以包含&?谢谢
是否有选项可以将TypeScript代码的输出编译为缩小?或者我们是否在单独的过程中处理这个问题?混淆会影响答案吗?
我的页面上有几个按钮,但我不知道如何判断哪个按钮被点击了.这是我的两个按钮的标记:
<input type="submit" id="btnSubmit" value="Save Changes" />
<input type="submit" id="btnDelete" value="Delete" />
Run Code Online (Sandbox Code Playgroud) c# ×4
escaping ×2
.net ×1
assemblies ×1
dictionary ×1
generics ×1
json ×1
php ×1
postgresql ×1
queue ×1
rabbitmq ×1
sql-server ×1
typescript ×1
vb.net ×1
xaml ×1