小编Iam*_*per的帖子

Nullable ToString()

我看到到处都是如下结构:

int? myVar = null;
string test = myVar.HasValue ? myVar.Value.ToString() : string.Empty;
Run Code Online (Sandbox Code Playgroud)

为什么不简单地使用:

string test = myVar.ToString();
Run Code Online (Sandbox Code Playgroud)

那不完全一样吗?至少Reflector说:

public override string ToString()
{
  if (!this.HasValue)
  {
    return "";
  }
  return this.value.ToString();
}
Run Code Online (Sandbox Code Playgroud)

那么,这是正确的(较短的版本)还是我错过了什么?

c# nullable

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

如何消除字符串中的所有换行符?

我需要摆脱出现在我的字符串中的所有换行符(来自db).我使用以下代码执行此操作:

value.Replace("\r\n", "").Replace("\n", "").Replace("\r", "")
Run Code Online (Sandbox Code Playgroud)

我可以看到,至少有一个角色表现得像行结束,幸存下来.字符代码是8232.

这对我来说很蹩脚,但我必须说这是我第一次有幸看到这个角色.显而易见,我可以直接替换这个字符,但我正在考虑将我当前的方法(基于替换"\ r"和"\n"的组合)扩展到更加可靠的东西,因此它不仅包括' 8232'char,还有其他所有人都没有找到我.

对于这样的问题,你有防弹方法吗?

编辑#1:

在我看来,有几种可能的解决方案:

  1. 使用Regex.Replace
  2. 删除所有字符,如果它是IsSeparator或IsControl
  3. 如果是IsWhiteSpace,请替换为""
  4. 创建所有可能行结尾的列表("\ r \n","\ r","\n",LF,VT,FF,CR,CR + LF,NEL,LS,PS)并将其替换为空串.这是很多替代品.

我会说最好的结果将是应用第一和第四种方法之后,但我无法确定哪种方法会更快.您认为哪一个是最完整的?

编辑#2

我在下面发了anwer.

.net c# string newline

43
推荐指数
5
解决办法
5万
查看次数

创建for/foreach循环中使用的对象的最佳实践

在for或foreach循环中处理对象的最佳实践是什么?我们应该在循环外创建一个对象并重新创建它(使用new ...)或者为每个循环迭代创建一个新对象吗?
例:

foreach(var a in collection)
{
  SomeClass sc = new SomeClass();
  sc.id = a;
  sc.Insert();
}
Run Code Online (Sandbox Code Playgroud)

要么

SomeClass sc = null;
foreach(var a in collection)
{
  sc = new SomeClass();
  sc.id = a;
  sc.Insert();
}
Run Code Online (Sandbox Code Playgroud)

哪个更好?

c#

34
推荐指数
2
解决办法
6863
查看次数

我应该删除vector <string>吗?

在过去的几天里,我痛苦地学习了很多关于c ++编程的知识.
我喜欢它:)
我知道我应该释放记忆 - 现在我的世界中存在金色的"每个malloc = free"或"每个new = delete"规则,但我将它们用于相当简单的对象.
矢量怎么样?无论我在哪里,我都在使用vector.clear(),但这显然是不够的,因为我有巨大的内存泄漏.
你能指导我如何对待这件事吗?

*编辑
谢谢,你的评论让我想到了这个应用程序的算法,我将能够完全消除向量.:哦
对不起 - 我开始在这里解释我的用例,我发现了我真正需要的东西.就像每天18小时编码最后3天一样:|*编辑2
这很疯狂.通过代码的微小变化,我将内存使用量从2x130 mb(不断增长)消除到2x 13,5mb,恒定大小.谢谢你让我以另一种方式思考这个问题.

顺便说一句.这样的自我代码审查有一个名字 - 有人记得吗?当你问任何人(甚至你的母亲或狗)并开始解释你的问题时 - 突然你自己解决了这个5小时的问题,只是试图从其他角度来看待它,或者只是试图总结它是什么所有关于.我经常发现自己被抓住了......

c++ memory-management

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

是否可以使用`SqlDbType.Structured`在NHibernate中传递表值参数?

我想将一组id传递给将使用NHibernate映射的存储过程.这种技术是在Sql Server 2008中引入的(更多信息在这里=> 表值参数).我只是不想在nvarchar参数中传递多个ID ,然后在SQL Server端切断它的值.

sql-server nhibernate table-valued-parameters

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

MemoryCache是​​否支持区域?

我需要添加缓存功能,并找到一个名为MemoryCache的新闪亮类.但是,我发现MemoryCache有点瘫痪(我需要区域功能).除了其他东西,我需要添加像ClearAll(区域)这样的东西.作者努力保持这个类没有区域支持,代码如下:

if (regionName != null)
{
throw new NotSupportedException(R.RegionName_not_supported);
}
Run Code Online (Sandbox Code Playgroud)

几乎每种方法都有.我没有看到一种简单的方法来覆盖这种行为.我能想到的添加区域支持的唯一方法是添加一个新类作为MemoryCache的包装,而不是作为一个继承自MemoryCache的类.然后在这个新类中创建一个Dictionary并让每个方法"缓冲"区域调用.听起来很讨厌和错误,但最终......

你知道更好的方法来添加区域到MemoryCache吗?

.net c# memorycache

15
推荐指数
2
解决办法
9626
查看次数

如何限制每个时间的方法使用?

它必须是微不足道的,但我无法通过它.我必须限制任务量(让我们说连接,发送电子邮件或点击按钮)的时间量.所以我可以每小时发送1000封电子邮件.

我怎么能在c#中做到这一点?我不知道也不关心每次操作需要多少时间.我只是想确保在最后一小时内只执行1000次.

.net c#

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

如何获得复杂的枚举值字符串表示

假设我有这个枚举:

[Flags]
public enum SomeType
{    
    Val1 = 0,
    Val2 = 1,
    Val3 = 2,
    Val4 = 4,
    Val5 = 8,
    Val6 = 16,
    All = Val1 | Val2 | Val3 | Val4 | Val5 | Val6
}
Run Code Online (Sandbox Code Playgroud)

和一些变量:

SomeType easyType = SomeType.Val1 | SomeType.Val2;
SomeType complexType = SomeType.All;
Run Code Online (Sandbox Code Playgroud)

如果我想循环第一个枚举的值,我可以简单地做:

foreach(string s in easyType.ToString().Split(','))
{ ... }
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将相同的方法应用于'complexType'时,我得到值'All',这当然是有效的,因为它也是枚举的可能值之一.但是,有没有一种巧妙的方法来实际看到SomeType.All创建的值是什么?我知道我可以手动循环遍历所有这些值:

if(complexType.HasFlag(ManualType.Val1) && ...
Run Code Online (Sandbox Code Playgroud)

c# enums flags

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

Umbraco或ASP.NET MVC

我即将创建一个网站,作为销售家具的公司的公共场所,但在用户登录后,他会看到更多的选择.内部新闻,下载文件,定制定价,新闻简报等 - 批发客户的东西.

我想快速完成并轻松维护/扩展它.我是asp.net开发人员,虽然我可以用python,php编写它,不管怎么说(我也知道这些),我还是喜欢asp.net.我正在考虑umbraco,因为它提供了真正的生产力提升,并且我熟悉它(并扩展它).我与ASP.NET MVC有一段短暂的恋情,所以我知道它的全部内容,但我仍然会花些时间学习它(但这很有趣!).当然,还有webforms,但这是我最后的选择.最后但并非最不重要的是SEO.

问题是,你们中的任何人都有类似的困境,你最后的选择是什么?

编辑:只是想注意,这个网站将由我和客户维护.目标是尽快设置它,但这并不会结束开发过程.该产品将继续使用多年.

asp.net asp.net-mvc umbraco

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

Asp.net MVC和普通的html页面

我即将创建一个非常简单的网站,其中包含几个静态页面(它们永远不会改变)和一个动态变化(让我们称之为新闻).我想知道是否可以在这里使用MVC而无需为这些"静态"页面创建控制器和视图.这不是太多的开销吗?

有没有办法让MVC简单地将传入的请求路由到有效文档而不必实际创建控制器?

asp.net-mvc

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