小编dbk*_*bkk的帖子

从C#中读取Excel文件

是否有免费或开源库直接从C#程序读取Excel文件(.xls)?

它不需要太花哨,只需选择一个工作表并将数据作为字符串读取.到目前为止,我一直在使用Excel的Export to Unicode文本功能,并解析生成的(制表符分隔的)文件,但我想消除手动步骤.

.net c# excel ms-office

233
推荐指数
11
解决办法
46万
查看次数

从DateTime获取时区

.Net DateTime是否包含有关创建时区的信息?

我有一个库,从最后有"+ zz"的格式解析DateTime,当它正确解析并调整本地时间时,我需要从DateTime对象获取特定时区.

这有可能吗?我只能看到DateTime.Kind,它指定时间是本地还是UTC.

.net c# timezone datetime

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

在C#中是bool读/写原子吗?

在C#中访问bool字段原子?特别是,我需要锁定:

class Foo
{
   private bool _bar;

   //... in some function on any thread (or many threads)
   _bar = true;

   //... same for a read
   if (_bar) { ... }
}
Run Code Online (Sandbox Code Playgroud)

.net c# concurrency boolean locking

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

从UI线程强制GUI更新

在WinForms中,如何从UI线程强制立即更新UI?

我正在做的大致是:

label.Text = "Please Wait..."
try 
{
    SomewhatLongRunningOperation(); 
}
catch(Exception e)
{
    label.Text = "Error: " + e.Message;
    return;
}
label.Text = "Success!";
Run Code Online (Sandbox Code Playgroud)

在操作之前,标签文本未设置为"Please Wait ...".

我使用另一个线程进行操作解决了这个问题,但它变得毛茸茸,我想简化代码.

c# multithreading winforms

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

是否可以将重写方法标记为final

在C#中,是否可以将重写的虚拟方法标记为final,因此实现者无法覆盖它?我该怎么办?

一个例子可以让它更容易理解:

class A
{
   abstract void DoAction();
}
class B : A
{
   override void DoAction()
   {
       // Implements action in a way that it doesn't make
       // sense for children to override, e.g. by setting private state
       // later operations depend on  
   }
}
class C: B
{
   // This would be a bug
   override void DoAction() { }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法修改B以防止其他子C在编译时或运行时覆盖DoAction?

.net c# inheritance

45
推荐指数
4
解决办法
1万
查看次数

正则表达式(C#):将\n替换为\ r \n

如何使用C#中的正则表达式将\n的单个实例替换为\ r \n(LF单独使用CRLF)?

对不起,如果这是一个愚蠢的问题,我是Regex的新手.

我知道要用计划来做String.Replace,比如:

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

然而,这是不优雅的,并且会破坏文本中已经存在的任何"\ r +\r \n"(尽管它们不太可能存在).

c# regex

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

在C#中以编程方式从Win XP注销用户

如何从C#应用程序启动Windows XP用户注销?我的应用程序的操作应该产生与在XP开始菜单中单击"注销"相同的结果 - 如果系统要求确认,则没问题.

是否有.Net或非托管API?

.net c# windows logoff

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

在C#中加密SQLite数据库

在.Net/C#中加密SQLite数据库文件的最佳方法是什么?我正在使用sqlite-dotnet2包装器.

有像SQLite加密扩展SQLite Crypt这样的工具,但两者都是非自由的,而我的项目是在GPL下.

我想要使​​用的天真方法是让SQLite处理一个临时文件,然后在程序退出时对其进行加密,并覆盖(清零)原始文件.显而易见的缺点是,如果程序崩溃(并且在运行时),则可以访问纯文本DB.

有没有更好的方法来解决这个问题?我可以将加密流传递给包装器(而不是使用SQLiteConnection.CreateFile)吗?

[编辑]也许我在思考这个问题.是否足以在连接字符串中使用密码选项?在这种情况下文件是否会被正确加密(或者它是一些较弱的保护)?

.net c# sqlite encryption file

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

为什么在干净的构建之后生成了不同的dll,没有代码更改?

当我做一个干净的构建我的C#项目时,生成的dll与之前构建的dll(我单独保存)不同.没有进行任何代码更改,只需清理和重建.

Diff显示DLL中的一些字节有变化 - 很少接近开始,很少接近结束,但我无法弄清楚这些代表什么.有没有人对这种情况发生的原因有什么见解以及如何预防?

这是使用Visual Studio 2005/WinForms.

更新:不使用自动版本递增或签署程序集.如果它是某种时间戳,如何防止VS写它?

更新:在查看Ildasm/diff之后,看起来以下项目有所不同:

  • PE头中的两个字节位于文件的开头.
  • <PrivateImplementationDetails> { guid }部分
  • 字符串表的隐藏部分接近结束(不知道为什么,我没有改变字符串)
  • 文件末尾的部件信息部分.

如果可能的话,不知道如何消除这些中的任何一个......

.net c# build-process visual-studio

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

WinForms ListView中的可变高度行

是否可以在详细信息模式下的WinForms ListView中具有可变高度的行?

据我所知,控件上没有RowHeight或Rows [i] .Height属性.

一些博客建议实现OwnerDraw,我做了,但我仍然无法在事件处理程序中找到类似高度属性的内容.

理想情况下,行高会自动调整大小以在需要时显示多行文本.

.net c# listview winforms

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