小编lc.*_*lc.的帖子

首选:Nullable <>.HasValue或Nullable <>!= null?

我总是使用(a)Nullable<>.HasValue因为我喜欢语义.然而,最近我正在研究其他人现有的代码库,他们Nullable<> != null专门使用(b)代替.是否有理由使用一个而不是另一个,还是纯粹的偏好?

(一个)

int? a;
if (a.HasValue)
    // ...
Run Code Online (Sandbox Code Playgroud)

(b)中

int? b;
if (b != null)
    // ...
Run Code Online (Sandbox Code Playgroud)

.net c# null nullable

408
推荐指数
4
解决办法
9万
查看次数

存储加密密钥 - 最佳实践?

我有一个使用对称加密算法的Web应用程序.

你将如何存储密钥和初始化向量?在代码中存储为文字似乎是一个坏主意.应用设置怎么样?这里的最佳做法是什么?

encryption configuration

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

事件 - 命名约定和样式

我正在学习C#中的事件/代表.我可以问一下你对我所选择的命名/编码风格的看法(取自Head First C#书)吗?

我明天正在和朋友一起教这个问题,并且正在尝试用最优雅的方式来解释这些概念.(认为​​理解一门学科的最好方法就是尝试教它!)

class Program
    {
        static void Main()
        {
            // setup the metronome and make sure the EventHandler delegate is ready
            Metronome metronome = new Metronome();

            // wires up the metronome_Tick method to the EventHandler delegate
            Listener listener = new Listener(metronome);
            metronome.OnTick();
        }
    }
Run Code Online (Sandbox Code Playgroud)
public class Metronome
    {
        // a delegate
        // so every time Tick is called, the runtime calls another method
        // in this case Listener.metronome_Tick
        public event EventHandler Tick;

        public void OnTick()
        {
            while (true) …
Run Code Online (Sandbox Code Playgroud)

c# events delegates

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

如何完全"杀死"后台工作者?

我正在编写一个Windows应用程序,它反复运行一系列数字IO操作.

当用户单击"开始"按钮时,此操作序列开始,并由后台工作人员在backgroundWorker1_DoWork()中完成.

但是,有时候我得到"这个背景工作者当前很忙......."的错误信息.

我正在考虑在代码中实现以下内容,通过使用while循环来"杀死"后台工作程序,然后再启动另一个操作序列:

if (backgroundWorker1.IsBusy == true)
{

    backgroundWorker1.CancelAsync();
    while (backgroundWorker1.IsBusy == true)
    {
        backgroundWorker1.CancelAsync();
    }

    backgroundWorker1.Dispose();

}

backgroundWorker1.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)

我认为我主要担心的是,backgroundWorker1最终会被"杀死"吗?如果愿意,需要很长时间才能完成吗?

这种编码会让我陷入无限循环吗?

c# backgroundworker

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

可以自动将默认析构函数生成为虚拟析构函数吗?

可以自动将默认析构函数生成为虚拟析构函数吗?

如果我定义了一个基类但没有默认的析构函数,是否会自动生成一个默认的虚拟析构函数?

c++ destructor

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

从属性设置器抛出什么异常?

我有一个字符串属性具有最大长度要求,因为数据链接到数据库.如果调用者尝试设置超过此长度的字符串,我应该抛出什么异常?

例如,这个C#代码:

public string MyProperty
{
    get
    {
        return _MyBackingField;
    }
    set
    {
        if (value.Length > 100)
            throw new FooException("MyProperty has a maximum length of 100.");

        _MyBackingField = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

我考虑过ArgumentException,但这似乎不对.从技术上讲,它是一个功能 - MyProperty_set(string value)- 所以ArgumentException可以制作一个案例,但它不是作为消费者眼睛的一个功能被调用 - 它位于赋值运算符的右侧.

这个问题也可能扩展到包括在属性设置器中完成的各种数据验证,但我对上述情况特别感兴趣.

c# validation properties exception

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

如何删除Android上一个文件夹中的所有文件和文件夹

我使用此代码删除所有文件:

File root = new File("root path");
File[] Files = root.listFiles();
if(Files != null) {
    int j;
    for(j = 0; j < Files.length; j++) {
        System.out.println(Files[j].getAbsolutePath());
        System.out.println(Files[j].delete());
    }
}
Run Code Online (Sandbox Code Playgroud)

它将删除false Files[j]文件夹的位置.

我想删除文件夹及其所有子文件.
我怎么修改这个?

java file-io android

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

计算机如何将2个数字相乘?

计算机如何对2个数字进行乘法运算,比如100*55.

我的猜测是计算机重复添加以实现乘法.当然,这可能是整数的情况.但是对于浮点数,必须有一些其他逻辑.

注意:这在面试中被问到了.

computer-science mathematical-optimization

22
推荐指数
4
解决办法
2万
查看次数

我在哪里可以找到免费的游戏图片?

我正在开发一款游戏.为了测试我的地图引擎,我需要8个方向角色行走的图片.作为编程,编写程序并不困难,但绘制图片对我来说是个大问题.所以我的问题是我在哪里可以找到一些游戏开发的免费图片?图片应该是免费的,因为我可能会在互联网或某个地方发布一些演示版本.谢谢.

image

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

在SQL中具有对象(表)权限的用户和角色的列表

你认为我能够谷歌这么简单的问题.但无论我尝试什么,我都会碰到一堵砖墙.

查找具有表权限的角色列表的TSQL语句是什么?

伪代码如下所示:

SELECT role_name 
FROM permissions 
where object_name = 'the_table_i_need_to_know_about'
Run Code Online (Sandbox Code Playgroud)

sql t-sql permissions azure-sql-database

17
推荐指数
2
解决办法
6万
查看次数