我现在正在第二或第三次学习VHDL。(这一次拥有一本非常好的和免费的电子书),我终于开始大量“获取”它。现在,我正在学习有关行为风格和流程陈述的知识,并且其中大部分是有意义的。但是,我在许多地方都读到,除某些情况外,应避免使用流程。我的意思是,从理论上讲,不是所有事情都可以在数据流中实现而不是在行为上实现吗?
何时确切应该使用流程声明?
有谁知道Windows 8 Phone模拟器是否使用ARM或x86作为其CPU架构?
cross-platform emulation cpu-architecture windows-phone-8 windows-phone-8-emulator
可能重复:
如何枚举枚举?
所以我有一些像这样的代码:
enum Decision
{
DecisionA,
DecisionB,
...
}
public void DoStuff(Decision d)
{
switch(d)
{
case Decision.DecisionA:
....
...
}
}
Run Code Online (Sandbox Code Playgroud)
基本上DoStuff,无论做出什么决定,都会做同样的事情,但决定是用来做出更优化的事情(更快或更好).
现在,我想为DoStuff实现单元测试.通过使用类似的数组来测试所有Decisions是否正常工作相当容易.new Decision[]{DecisionA, DecisionB, ...};但是,如果我添加一个决定,那么我必须返回并手动将其添加到单元测试中.
是否可以只访问由a指定的所有可能选项enum?例如,像这样:
foreach(var d in Decision.Options)
{
//d will be DecisionA, and then DecisionB, etc etc
}
Run Code Online (Sandbox Code Playgroud) 所以,我一直在阅读有效使用遗留代码.它非常棒,涵盖了许多很酷的技术,这些技术在未经测试的代码上也是"安全的".
我最喜欢的一个部分是建议在有麻烦的依赖项时扩展你打算测试的类.例如
class FooBar
{
public List<Foo> ReadFoos()
{
var s=new SqlConnection(Config.SomeConntectionStirng);
s.Read("Foo")....
}
}
Run Code Online (Sandbox Code Playgroud)
被重构成
class FooBar
{
public List<Foo> ReadFoos()
{
var s=MyConnection();
s.Read("Foo")....
}
protected virtual IConnection MyConnection()
{
return new SqlConnection(Config.SomeConnectionString);
}
}
Run Code Online (Sandbox Code Playgroud)
然后测试它,你会继承它:
class TestableFooBar : FooBar
{
protected override IConnection MyConnection()
{
return new MockConnection();
}
}
Run Code Online (Sandbox Code Playgroud)
并对扩展课程进行测试.
现在,我的问题.这样做可以,而不是以后重构吗?我说这个的主要原因是因为这对于一些通常很难进行单元测试而不会使调用API更难使用的代码非常有用.在公共API上,您肯定希望它尽可能简单.那么,这是一个保持设计的好事吗?
我正在用 C++ 编写程序,我正在使用的外部头文件在类声明中非常自由地使用 typedef。
所以,当我去查找一个函数的返回类型时,我会看到GlobalVariableList FooBar(),但是为了实际存储它返回的类型,我不能只使用它,GlobalVariableType因为它是iplist<GlobalVariabl>我在引用的类中声明的 typedef头文件。
是否可以从类的外部访问在其中声明的类的 typedef?
我最近读过关于应该如何避免游标的内容.好吧,我想知道我对它们的使用是否合适.
我正在创建一个可在线工作的脚本引擎(嵌入在页面,服务器端)此脚本引擎将由本产品的"高级"最终用户使用.然而,该产品与数据库非常相似,并且脚本语言类似于C语言,但简化为类似于PHP的地方.对于数据库,我基本上需要这样的语法,因为它是语言中最一致的语法,没有最终用户必须手写SQL代码(如果我们要让他们这样做,为什么他们不能跳过脚本引擎作为它的生活更简单).语法是这样的:
declare DataSet $data("tablename","OtherID="+$oid);
//Dataset(string tablename,string where_clause_addon)
$data["field1"]="the data of field... ";
$data.Next();
$data["field1"]="The data of the next row";
$data[10]["field1"]="The data of the 10th row";
Run Code Online (Sandbox Code Playgroud)
我通过为每个DataSet创建一个全局游标(我只在应用程序中使用1个连接)然后让全局游标跟踪当前行位置(它也是一个SCROLL和UPDATE游标)来内部控制它.这使我的生活变得更加简单,否则我将被迫编写自己的SQL控件来对抗.Net的糟糕DataReader.
游标的使用是否正常?请注意,具有这些脚本的页面将无法在全球范围内访问,仅适用于客户端(因此可能只有3-10个用户同时访问).
有没有人看到更好的方法来跟踪当前的变量位置?(因为这些能够解决未知模式的表)
另外,使用这样的游标我会遇到并发问题吗?(我的文档说游标是连接的全局,并且每个页面请求在现场建立新连接,因此用户不共享连接)
我试图在容器的不同侧面制作两个元素.在我的实际代码中,这两个元素位于div的两侧,但是为了举例,我想在浏览器窗口的两侧需要它们.
所以我做了一个简单的事:
<html>
<head>
</head>
<body>
<table>
<tr>
<td style="width: 50%;text-align: left;">
This should go left
</td>
<td style="width: 50%;text-align: right;">
This should go right
</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
好吧,我并不完全确定如何使用div甚至做得很好.同样在右对齐的表格单元格中,我的实际代码中将有两个元素.一个是图像,一个是文本.我希望它们<td>位于它们所包含的两侧.
我怎么能按照我想要的方式做到这一点?我没有看到任何直截了当的方式.(请不要推荐固定定位)
我试图使它成为可以使我们的应用程序基于预处理器指令的存在而表现不同.我已经读过你可以根据你做的构建创建构建配置来定义不同的预处理器指令.好吧,我在Visual Studio中没有看到任何内容.我知道如何从命令行执行此操作,但不知道如何在VS 2008的自动化环境中执行此操作.
有人能告诉我如何创建一个新的构建配置,其中设置了预处理器指令吗?
此外,不确定它是否与它有任何关系,但我们的项目是一个ASP.Net网站
我正在使用一个库,并在使用我已经制作的函数时注意到一些奇怪的东西(我必须在哪里进行投射).
该库的功能定义如下
public DateTime? GetDate(){..}
Run Code Online (Sandbox Code Playgroud)
这有什么意义?为什么不让它成为常规DateTime并且null如果在获取日期时出现错误则正常返回?我错过了关于Nullable类型的重要内容吗?
#ifndef _ClientSocket_H_
#define _ClientSocket_H_
#include "Includes.h"
#include "LOGMSGs.h"
class cSocket
{
public:
cSocket();
bool Open();
bool Listen(char *OnIP,int OnPort);
void Send(char *MSG, int len);
void Recv(char *MSG,int len);
void Close();
protected:
SOCKET cSock;
const int SndBuf;
};
#endif
#include "ClientSocket.h"
bool cSocket::Open()
{
WSADATA wsaData;
int err;
if((err =WSAStartup(0x202, &wsaData)) !=0)
{
Error("Init WSAStartup() failed[%d].", err);
return false;
}
return true;
}
bool cSocket::Listen(char *OnIP,int OnPort)
{
if(Open())
{
//Create the main socket
cSock=socket(AF_INET, SOCK_STREAM, 0);
if(cSock==INVALID_SOCKET)
{
int err …Run Code Online (Sandbox Code Playgroud) c# ×4
c++ ×2
unit-testing ×2
.net ×1
concurrency ×1
constructor ×1
css ×1
cursor ×1
emulation ×1
enums ×1
hdl ×1
html ×1
html-table ×1
inheritance ×1
linker ×1
mocking ×1
nullable ×1
performance ×1
sql ×1
sql-server ×1
typedef ×1
vhdl ×1
visual-c++ ×1