小编won*_*nea的帖子

测试泛型类型是字符串的最佳方法是什么?(C#)

我有一个泛型类,应该允许任何类型,原始或其他.唯一的问题是使用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)

但这感觉就像一块垃圾.有没有更好的方法来处理字符串案例?

c# generics

90
推荐指数
2
解决办法
8万
查看次数

PostgreSQL删除所有内容

您好我想删除postgresql表中的所有数据,但不删除表本身.我怎么能这样做?

postgresql

88
推荐指数
4
解决办法
11万
查看次数

将DateTime数据库字段设置为"Now"

在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中不存在).

vb.net sql-server

85
推荐指数
3
解决办法
24万
查看次数

删除RabbitMQ中的队列

我有一些与RabbitMQ一起运行的队列.其中一些现在没用,我怎么能删除它们?不幸的是我没有设置auto_delete选项.

如果我现在设置它,它会被删除吗?

有没有办法现在删除这些队列?

queue rabbitmq

85
推荐指数
14
解决办法
9万
查看次数

如何转义JSON字符串?

是否有任何类/函数可用于简单的JSON转义?我宁愿不必写自己的.

c# json escaping

84
推荐指数
9
解决办法
12万
查看次数

检索字典值最佳实践

我刚刚注意到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本身并将其用作逻辑,不是吗?

.net c# dictionary

79
推荐指数
2
解决办法
13万
查看次数

如何按名称获得C#.Net程序集?

是否有类似的东西:

AppDomain.CurrentDomain.GetAssemblyByName("TheAssemblyName")
Run Code Online (Sandbox Code Playgroud)

因此AppDomain.CurrentDomain.GetAssemblies(),我们可以直接获取特定的程序集,而不是循环.

c# assemblies

79
推荐指数
6
解决办法
7万
查看次数

如何在ComboBoxItem的内容中包含&符号(&)

我目前有一个类似下面的Combobox:

//XAML
<ComboBox>
<ComboBoxItem> Awake & Alive</ComboBoxItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)

这会引发错误:以&符号'&'开头的实体引用或序列必须以分号';'结束.

我假设我错过了某种转义序列,允许我使用&.如何设置此组合框的内容以包含&?谢谢

xaml escaping

77
推荐指数
3
解决办法
3万
查看次数

是否可以将TypeScript编译为缩小代码?

是否有选项可以将TypeScript代码的输出编译为缩小?或者我们是否在单独的过程中处理这个问题?混淆会影响答案吗?

typescript

77
推荐指数
3
解决办法
3万
查看次数

如何判断在PHP表单中单击了哪个按钮?

我的页面上有几个按钮,但我不知道如何判断哪个按钮被点击了.这是我的两个按钮的标记:

<input type="submit" id="btnSubmit" value="Save Changes" />
<input type="submit" id="btnDelete" value="Delete" />
Run Code Online (Sandbox Code Playgroud)

php

74
推荐指数
2
解决办法
13万
查看次数