我一直在阅读这里的各种问题,因为我正在学习VHDL并且总是希望改进.但是,这条评论让我很好奇:
有人告诉我,在我在大学的简短VHDL课程中,单独的过程是最好的形式,以分离同步方面.
显然这是个人偏好,但我希望一些更有经验的用户可以根据自己的喜好对利弊进行一些说明?比另一个更常见吗?
谢谢!
我有一个DataTable,完全填充,我想设置为DatagridView:
gdv.DataSource = dt;
Run Code Online (Sandbox Code Playgroud)
然而,这非常缓慢.DataTable的填充速度非常快,但上面这一行需要很长时间.有没有办法加快速度或在另一个线程中执行它?
在这一点之后没有互动.只是上面的简单陈述!
谢谢.
我正在使用Visual Studio 2010在C#中编写一个项目,但是想使用NUnit进行单元测试.
我对oop很新,但试图尽可能地隐藏信息,只暴露所需的最少接口.这意味着我有几个完全在库内部的类 - 它们可以处理一些内部状态,而用户只需要知道几个提供接口的公共类.
这似乎尽可能地隐藏,为用户提供最小的界面.
但是,如果我想进行单元测试,我看不到测试这些类的方法.所以我的问题是什么是最佳做法?纯粹为了单元测试而不得不公开它们似乎是一种耻辱......或者是否有更好的工具可用于工作?
这似乎是在尽可能多地封装和尽可能多的方法之间进行权衡以允许对它们进行全部测试 - 当然,最好是单元测试来测试内部工作并让集成测试测试公共接口?
-
我意识到通常情况下,你只会担心单元测试公共接口,但在这种情况下会导致很多非常复杂的测试 - 将所有内容分解成小块进行测试肯定会更好吗?
我可以使用以下命令从我的 C# 项目打印图表:
chart1.Printing.PrintDocument.DocumentName = "Graph of data";
Run Code Online (Sandbox Code Playgroud)
但是可以为此添加一个标题吗?我希望文档名称能够实现这一点,但显然不能!
这可能看起来像迂腐,但实际上是我在质疑我的基本假设..:)
在关于同步方法的java文档中,有以下示例:
public class SynchronizedCounter {
private int c = 0;
public synchronized void increment() {
c++;
}
public synchronized void decrement() {
c--;
}
public synchronized int value() {
return c;
}
}
Run Code Online (Sandbox Code Playgroud)
synchronized该方法真的需要关键字吗value?当然,这是原子性的,无论在其他线程上调用相关方法之前还是之后检索该值都没有什么区别?以下就足够了:
public class SynchronizedCounter {
private int c = 0;
public synchronized void increment() {
c++;
}
public synchronized void decrement() {
c--;
}
public int value() {
return c;
}
}
Run Code Online (Sandbox Code Playgroud)
我明白,在更复杂的情况下,如果要访问多个私有变量,那么是的,这是必要的 - 但在这种简单的情况下,可以安全地假设这可以简化吗?
另外,我认为存在这样的风险:未来的修改可能需要同步 value 方法,这可能会被忘记,从而导致错误等,所以也许这在某种程度上算作防御性编程,但我在这里忽略了这一方面。 :)
通常,我通常会在头文件中包含依赖项,以便在将该头添加到源文件时,无需挖掘其他所需的头即可进行编译。
但是,在回顾了一些其他编码标准之后,似乎经常禁止这样做,因为头文件将不包含任何#include语句。
我真的对此没有任何讨论-禁止这种做法的原因是什么,或者纯粹是出于偏爱?
-
例如,typedef.h包含U8的typedef。my_header.h声明void display_message(U8 arg);
应该将对typedef.h的引用放入my_source_file.c或my_header.h?
c# ×3
c ×1
charts ×1
datagridview ×1
datatable ×1
header-files ×1
include ×1
java ×1
oop ×1
printing ×1
unit-testing ×1
vhdl ×1
winforms ×1