我总是使用(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) 我有一个使用对称加密算法的Web应用程序.
你将如何存储密钥和初始化向量?在代码中存储为文字似乎是一个坏主意.应用设置怎么样?这里的最佳做法是什么?
我正在学习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) 我正在编写一个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#代码:
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可以制作一个案例,但它不是作为消费者眼睛的一个功能被调用 - 它位于赋值运算符的右侧.
这个问题也可能扩展到包括在属性设置器中完成的各种数据验证,但我对上述情况特别感兴趣.
我使用此代码删除所有文件:
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]文件夹的位置.
我想删除文件夹及其所有子文件.
我怎么修改这个?
计算机如何对2个数字进行乘法运算,比如100*55.
我的猜测是计算机重复添加以实现乘法.当然,这可能是整数的情况.但是对于浮点数,必须有一些其他逻辑.
注意:这在面试中被问到了.
我正在开发一款游戏.为了测试我的地图引擎,我需要8个方向角色行走的图片.作为编程,编写程序并不困难,但绘制图片对我来说是个大问题.所以我的问题是我在哪里可以找到一些游戏开发的免费图片?图片应该是免费的,因为我可能会在互联网或某个地方发布一些演示版本.谢谢.
你认为我能够谷歌这么简单的问题.但无论我尝试什么,我都会碰到一堵砖墙.
查找具有表权限的角色列表的TSQL语句是什么?
伪代码如下所示:
SELECT role_name
FROM permissions
where object_name = 'the_table_i_need_to_know_about'
Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×1
android ×1
c++ ×1
delegates ×1
destructor ×1
encryption ×1
events ×1
exception ×1
file-io ×1
image ×1
java ×1
null ×1
nullable ×1
permissions ×1
properties ×1
sql ×1
t-sql ×1
validation ×1