我想问一下你认为最好的方法(持续时间更少/消耗更少的资源)来清除内容以重用StringBuilder.想象一下以下场景:
StringBuilder sb = new StringBuilder();
foreach(var whatever in whateverlist)
{
sb.Append("{0}", whatever);
}
//Perform some stuff with sb
//Clear stringbuilder here
//Populate stringbuilder again to perform more actions
foreach(var whatever2 in whateverlist2)
{
sb.Append("{0}", whatever2);
}
Run Code Online (Sandbox Code Playgroud)
在清除StringBuilder时,我可以想到两种可能性:
sb = new StringBuilder();
Run Code Online (Sandbox Code Playgroud)
要么
sb.Length = 0;
Run Code Online (Sandbox Code Playgroud)
清除它的最佳方法是什么?为什么?
谢谢.
编辑:我使用当前的.NET 3.5版本.
我必须在mysql中创建一个包含2个表的数据库,但是脚本因errno 150而失败(外键问题).我仔细检查了两个表上的外键字段是否相同,我找不到任何错误.
这是脚本:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
DROP SCHEMA IF EXISTS `testdb`;
CREATE SCHEMA IF NOT EXISTS `testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
USE `testdb`;
DROP TABLE IF EXISTS `testdb`.`table1` ;
CREATE TABLE IF NOT EXISTS `testdb`.`table1` (
`id` INT UNSIGNED NOT NULL ,
`field1` VARCHAR(50) NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;
DROP TABLE IF EXISTS `testdb`.`table2` ;
CREATE TABLE IF NOT EXISTS `testdb`.`table2` (
`id` INT NOT NULL AUTO_INCREMENT …Run Code Online (Sandbox Code Playgroud) 我有一个first.js文件包含在页面index.php中,有类似这样的东西:
$(function(){
$("#my_slider").slider("value", 10);
});
Run Code Online (Sandbox Code Playgroud)
而在index.php中我有一些动态创建的滑动:
<?php function slidders($config, $addon)
{
$return = '
<script type="text/javascript">
$(function() {
$("#slider_'.$addon['p_cod'].'").slider({
min: '.$config['min'].',
max: '.$config['max'].',
step: '.$config['step'].',
slide: function(event, ui) {
$("#cod_'.$addon['p_cod'].'").val(ui.value);
$(".cod_'.$addon['p_cod'].'").html(ui.value+"'.@$unit.'");
},
change: function(event, ui) {
$("#cod_'.$addon['p_cod'].'").change();
}
});
$("#cod_'.$addon['p_cod'].'").val($("#slider_'.$addon['p_cod'].'").slider("value"));
$(".cod_'.$addon['p_cod'].'").html($("#slider_'.$addon['p_cod'].'").slider("value")+"'.@$unit.'");
});
</script>';
return $return;
} ?>
Run Code Online (Sandbox Code Playgroud)
问题是,因为我的index.php滑块在我的first.js之后被实例化我无法在那里设置一个值,是否有任何事件,比如"毕竟$(document).ready()已经运行"我可以在first.js中使用来操作index.php中创建的滑块?
想象一下以下场景:
我正在使用SQL Server 2005.我有一个事务,在其他SQL语句中调用一个内部也有事务的存储过程.外部事务有时会失败,并在成功调用和提交存储过程后回滚.
我的问题是,存储过程的事务是否也回滚了?
我必须检查一些其他人有一些内存泄漏的代码.现在我正在搜索一次性对象以使用using语句对它们进行包围,我想知道是否有一种快速方式告诉你所有声明的一次性对象.我的意思是像resharper或另一个visual studio插件.
谢谢.
我必须设计一个带.NET的数据访问层,它可能会使用多个具有相同关系设计的数据库管理系统(Mysql和Sql Server).
基本上,从一个数据库切换到另一个数据库必须简单,所以我希望你向我推荐一些对你有用的网站或书籍,通常的设计模式或信息来实现这种数据访问层.
谢谢.
我必须使用php的mysql改进库将一行插入到mysql中具有类型为VARBINARY的主键的表中.该字段的内容是计算的sha1哈希.
如果我以旧的方式运行查询它完美地工作:
$mysqli->$query("INSERT INTO table (id, field1) VALUES (0x" . $id . ",'" . $field1 . "')");
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将其作为准备好的声明执行时,我无法弄清楚如何做到这一点.如果我执行等效操作:
if($stmt = $mysqli->prepare("INSERT INTO table (id, field1) VALUES (?, ?)")) {
$stmt->bind_param('ss', "0x".$id, $field1);
//execute statement
}
Run Code Online (Sandbox Code Playgroud)
它会抛出一个异常,说明这个字段的内容太大了.如果我尝试将其作为BLOB字段插入:
if($stmt = $mysqli->prepare("INSERT INTO table (id, field1) VALUES (?, ?)")) {
$stmt->bind_param('bs', $id, $field1);
//execute statement
}
Run Code Online (Sandbox Code Playgroud)
它没有给出错误,插入了行,但标识符字段现在为空(不为空,为空).
我知道我可以混合查询并输入字符串中连接的id和其他字段作为预准备语句的绑定参数,但我只是想知道插入这个的正确方法是什么,也许它会帮助某些人未来.
我的目标是,如果用户提交此表单,其"产品名称"值为"YYY".在提交页面上应重新加载,但这次"产品名称"应显示以前的valye默认为本例"YYY".
这是我的代码......
function addnewproduct_page () {
return drupal_get_form('addnewproduct_form',&$form_state);
}
function addnewproduct_form(&$form_state) {
$form = array();
$formproductname['productname'] = array (
'#type' => 'textfield',
'#title' => t('Product Name'),
'#required' => TRUE,
'#size' => '20',
);
if (isset($form_state['values']['productname']))
{
$form['productname']['#default_value'] = $form_state['values']['productname'];
}
//a "submit" button
$form['submit'] = array (
'#type' => 'submit',
'#value' => t('Add new Product'),
);
return $form;
}
Run Code Online (Sandbox Code Playgroud) 我有一个.NET Windows服务,它调用cdb.exe来分析崩溃转储.我想在需要时使用以下参数自动从http://msdl.microsoft.com下载符号:
-y srv*c:\symbols*http://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)
如果我将应用程序作为控制台应用程序运行,它按预期工作,并为每个转储下载所需的符号.
问题是,当我将应用程序作为Windows服务启动时,符号不会被下载,如果我打开symnoisy,在cdb的输出日志中,我有一个条目,表示在http:/处找不到该符号/msdl.microsoft.com
所以,我使用嗅探器检查了它,有趣的是,当作为服务运行时,没有请求微软符号服务器.
谷歌搜索了一下,我发现我不是唯一一个有这个问题的人,似乎问题是当一个应用程序作为Windows服务运行时,它使用winHTTP库来进行http请求,而不是wininet,我认为是问题的根源:http://support.microsoft.com/kb/238425
所以,我不知道为什么,cdb无法使用winHTTP库连接到ms符号服务器,我需要一种强制cdb默认使用wininet的方法.
任何人都知道这个问题的解决方法?
hbase在哪里存储命名空间/表的数据文件?我发现这篇文章:Hbase如何编写其数据以及我需要一个完整路径位置,只是为了将权限分离到不同的命名空间.
在Hive文件在hive_warehouse_path/database/table/partition中,我在Hbase中寻找相同的文件.
你能帮我吗?
关于Pawel
编辑:顺便说一句,我发现了一个关于HBase中文件结构的有趣幻灯片:http://www.slideshare.net/enissoz/hbase-and-hdfs-understanding-filesystem-usage
.net ×2
c# ×2
mysql ×2
.net-3.5 ×1
database ×1
dispose ×1
drupal ×1
forms ×1
hadoop ×1
hbase ×1
idisposable ×1
jquery ×1
memory-leaks ×1
oop ×1
optimization ×1
php ×1
sql-server ×1
symbols ×1
transactions ×1
windbg ×1
winhttp ×1
wininet ×1