我刚刚浏览了Stackoverflow上的Design Patterns Questions,每个人都提到了GoF- Design Pattern书和Head First Design Patterns书来学习它们.
我的问题是我们如何学习where,when我们可以特别应用Design Pattern.
是否有任何书籍或在线资源可以提供这些知识或我们在做出决定时需要遵循哪些步骤where,when我们应该使用特定的Design Patterns?
我看了一下网站和谷歌,但我似乎无法找到一个很好的解决方案,我正在尝试做什么.
基本上,我有一个客户端服务器应用程序(C#),我向服务器发送一个SQL select语句(连接到SQL Server 2008),并希望以CSV方式将结果返回给客户端.
到目前为止,我有以下内容:
if (sqlDataReader.HasRows)
{
while(sqlDataReader.Read())
{
//not really sure what to put here and if the while should be there!
}
Run Code Online (Sandbox Code Playgroud)
}
不幸的是,我真的很想将C#与SQL连接起来.我需要有关如何简单地将结果放在csv格式的字符串中的任何提示.列和字段可能会有所不同,所以我不能像在一些网站上看到的那样使用某种东西的方法.我不确定我是否可以理解了!
我非常感谢有关如何解决这个问题的任何提示/要点!
可能重复:
C编程:free如何知道要释放多少?
在C语言编程时,我经常malloc()用来分配内存并free()释放它:
MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
/** Do stuff **/
free(objArr);
Run Code Online (Sandbox Code Playgroud)
怎么free()知道释放多少内存?是否malloc()在某处创建了一个表来记住指针以及每个指针指向的内存量?
如果是这种情况,free()如果我重命名指针会失败吗?例如:
MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
MyObject* newPtr= objArr;
free(newPtr); /** Does this fail? **/
Run Code Online (Sandbox Code Playgroud)
如果我增加指针然后运行会发生什么free()?例如:
MyObject* objArr= (MyObject*) malloc(sizeof(MyObject)*numberOfObjects);
newPtr++;
free(newPtr); /** What happens now? **/
Run Code Online (Sandbox Code Playgroud)
它会在原始数组的末尾解除分配一块额外的内存吗?
我注意到,当动态创建一个大画布(6400x6400)时,很多时候都不会在其上绘制任何东西,并且当将画布设置为小尺寸时,它会100%的时间工作,但是因为我没有我知道更好,我别无选择,只能尝试让大帆布正常工作.
thisObj.oMapCanvas = jQuery( document.createElement('canvas') ).attr('width', 6400).attr('height', 6400).css('border','1px solid green').prependTo( thisObj.oMapLayer ).get(0);
// getContext and then drawing stuff here...
Run Code Online (Sandbox Code Playgroud)
thisObj.oMapCanvas = jQuery( document.createElement('canvas') ).attr('width', 6400).attr('height', 6400).css('border','1px solid green').prependTo( thisObj.oMapLayer ).get(0);
// getContext and then drawing stuff here...
Run Code Online (Sandbox Code Playgroud)
画布的目的是简单地在两个节点(图像)之间绘制一条线,这两个节点位于可以拖动的div容器内(视口我认为人们称之为它们).
我"想"可能发生的是,在画布上调整大小会占用画布,这就干扰了上下文绘制,就像我之前说的那样,当画布很小时它会一直有效.
有没有人经历过这个和/或知道任何可能的解决方案?
在没有接触Visual Studio(或任何其他IDE)的情况下创建WPF应用程序是否可行?在Vim和命令行中完全编码和编译?对于试图这样做的人,您会推荐哪些资源?
我理解malloc()是如何工作的.我的问题是,我会看到这样的事情:
#define A_MEGABYTE (1024 * 1024)
char *some_memory;
size_t size_to_allocate = A_MEGABYTE;
some_memory = (char *)malloc(size_to_allocate);
sprintf(some_memory, "Hello World");
printf("%s\n", some_memory);
free(some_memory);
Run Code Online (Sandbox Code Playgroud)
为简洁起见,我省略了错误检查.我的问题是,你不能通过初始化指向内存中某些静态存储的指针来做到这一点吗?也许:
char *some_memory = "Hello World";
Run Code Online (Sandbox Code Playgroud)
在什么时候你真的需要自己分配内存而不是声明/初始化你需要保留的值?
我想为编译器编写一个(gmake)makefile - 与gcc不同 - 将所有输出文件放入特定目录.不幸的是,这种行为无法改变.
我的来源在多个目录中.如何编写允许我编译源的模式规则.
好的,这有点不清楚.这是一个例子.我的消息来源看起来像这样:
./folder1/foo.c
./folder2/bar.c
Run Code Online (Sandbox Code Playgroud)
并且输出文件最终会像这样:
./obj/foo.obj
./obj/bar.obj
Run Code Online (Sandbox Code Playgroud)
我的规则应该如何编译我的源代码?
%.obj : %.c
$(COMPILER) -c $<
Run Code Online (Sandbox Code Playgroud)
不管用.
有任何想法吗?我想避免每个源文件的隐式规则......
我需要一个固定大小的队列.当我添加一个元素并且队列已满时,它应该自动删除最旧的元素.
Java中是否存在此实现?
我正在使用部分视图进行登录,并希望在成功时将用户重定向到新页面,如果模型无效,则在部分视图中显示验证错误.ajax目标正在更新并成功或失败.如果模型有效,它将在更新目标中显示整个新页面,但我希望它重定向到新页面.我已经尝试过Redirect和RedirecttoAction,但它没有获得所需的结果.任何有关我可以去的想法都会获得ajax更新以重定向到新页面,而不是更新目标.另外,如果我使用错误的方法,请告诉我.
部分查看代码:
<% using (Ajax.BeginForm(
"LogOn",
null,
new AjaxOptions {
HttpMethod = "POST",
UpdateTargetId = "SignInForm"
},
new {
id = "SignInForm", ReturnUrl = Request.QueryString["ReturnUrl"]
})) { %>
<<Page HTML Controls>>
<input type="submit" value="Log On" />
<% } %>
Run Code Online (Sandbox Code Playgroud)
这是相关的控制器代码:
public ActionResult Logon(LogOnModel model,string returnUrl)
{
if (ModelState.IsValid)
{
//Login Logic Code
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "App");
}
}
// If we got this far, something failed, redisplay form
if (Request.IsAjaxRequest())
return PartialView("LogOnControl");
return …Run Code Online (Sandbox Code Playgroud) 在项目中有多个框架是好还是可以,或者它是不好的,因为它变得混乱(=一团糟),加载时间可能会更长.一些100 K真的重要吗?或者你应该坚持一个?
c ×2
asp.net-ajax ×1
asp.net-mvc ×1
c# ×1
canvas ×1
dojo ×1
dynamic ×1
html5 ×1
java ×1
javascript ×1
jquery ×1
makefile ×1
malloc ×1
memory ×1
queue ×1
resultset ×1
sql ×1
sql-server ×1
wpf ×1