在命名空间中定义函数时,
namespace foo {
function bar() { echo "foo!\n"; }
class MyClass { }
}
Run Code Online (Sandbox Code Playgroud)
从另一个(或全局)命名空间调用时,必须指定命名空间:
bar(); // call to undefined function \bar()
foo\bar(); // ok
Run Code Online (Sandbox Code Playgroud)
对于类,您可以使用"use"语句将类有效地导入当前命名空间[编辑:我认为您可以"使用foo"来获取类,但显然不是.]
use foo\MyClass as MyClass;
new MyClass(); // ok, instantiates foo\MyClass
Run Code Online (Sandbox Code Playgroud)
但这不适用于函数[并且考虑到有多少函数会很笨拙]:
use foo\bar as bar;
bar(); // call to undefined function \bar()
Run Code Online (Sandbox Code Playgroud)
您可以对命名空间进行别名以使前缀更短以进行输入,
use foo as f; // more useful if "foo" were much longer or nested
f\bar(); // ok
Run Code Online (Sandbox Code Playgroud)
但有没有办法完全删除前缀?
背景:我正在研究Hamcrest匹配库,它定义了许多工厂函数,其中许多都是为嵌套而设计的.拥有名称空间前缀确实会破坏表达式的可读性.相比
assertThat($names,
is(anArray(
equalTo('Alice'),
startsWith('Bob'),
anything(),
hasLength(atLeast(12))
)));
Run Code Online (Sandbox Code Playgroud)
至
use Hamcrest as …Run Code Online (Sandbox Code Playgroud) 什么是使用win32api进行I/O和其他事情而不仅仅是Python的Pro和Con,如果它们都具有特定的功能
我的意思是,使用PyWin32 vs Win32Api
我应该在Windows注册表中添加哪些数据以及正确创建文件关联?
我问这个问题主要是因为我多年前写过的一些旧应用程序,它们使用Visual Studio .NET的Windows Installer打包程序来创建文件关联.我安装的扩展名是.whr和.encxml.
现在,在安装这些应用程序的计算机上,有时会出现一个奇怪的问题- 当在Google Chrome或Internet Explorer(特别是exe,msi或zip文件)中下载文件时,浏览器会将文件扩展名更改为1我的安装程序安装的扩展程序.我不知道它是否会影响其他浏览器 - 这两个浏览器有什么共同之处吗?所以...如果你下载,例如http://example.com/downloads/application.exe,该文件将被下载为http://example.com.downloads/application.encxml(或.whr,无论哪个因为没有任何明显的理由,他们当下选择了一个.
我要指出的是,按键的HKCR\.whr和HCKR\.encxml密钥引用(帐户管理器加密的XML文件和工作时间记录)中包含空格,当我在Visual Studio中创建关联时,我没有添加".".到前面.也许不允许使用空格,和/或你应该用"."作为前缀?注册表代码似乎没问题,但我注意到通过我的注册表查看每个其他应用程序不使用关联类中的空间,也不会在我知道的任何机器上安装的任何应用程序的任何其他文件扩展名中发生此问题 - 仅由我的应用程序的VS安装程序创建的.我已经粘贴了相应的注册表项和与文件扩展名相关的值的注册表转储 - 因为MSI是专有的我不知道这是否全部,但从我从其他应用程序知道这应该是一切.一世' 多年来一直对这个问题感到疑惑,但却永远无法理解.我很快用新产品替换其中一个旧应用程序,所以这次我想确保没有像这样的奇怪错误......
这是数据(注意我已经指出了一些二进制字符串的文本值,其中//注释低于该值):
[HKEY_CLASSES_ROOT\.encxml]
"Content Type"="application/octet-stream"
@="Account Manager Encrypted XML File"
[HKEY_CLASSES_ROOT\.encxml\Account Manager Encrypted XML File]
[HKEY_CLASSES_ROOT\.encxml\Account Manager Encrypted XML File\ShellNew]
Run Code Online (Sandbox Code Playgroud)
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File]
@="Account Manager Encrypted XML File"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\DefaultIcon]
@=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,\
00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,49,00,6e,00,73,00,74,00,\
61,00,6c,00,6c,00,65,00,72,00,5c,00,7b,00,42,00,36,00,34,00,31,00,37,00,36,\
00,30,00,42,00,2d,00,37,00,44,00,42,00,37,00,2d,00,34,00,46,00,31,00,42,00,\
2d,00,41,00,44,00,36,00,45,00,2d,00,30,00,41,00,33,00,34,00,32,00,30,00,46,\
00,35,00,45,00,45,00,30,00,44,00,7d,00,5c,00,5f,00,36,00,46,00,45,00,46,00,\
46,00,39,00,42,00,36,00,38,00,32,00,31,00,38,00,34,00,31,00,37,00,46,00,39,\
00,38,00,46,00,35,00,34,00,39,00,2e,00,65,00,78,00,65,00,2c,00,30,00,00,00
// Product code GUID is: {F7F214E9-ED37-4AE1-B0D2-93427973E60A}, …Run Code Online (Sandbox Code Playgroud) 好吧,我一直在网上关注NerdDinner教程,我已经把它完成了T.
现在我使用几乎相同的架构实现了我自己的项目.
我注意到我的流程是:
当我完成时,我已经筋疲力尽,除了拖动和复制代码以及更改变量名称之外,我还没有做任何事情.
我在这里想念的是什么 我在哪里可以改善这种样板雾度?
编辑:没有创建我自己的T4模板,有没有一个工具可以帮助我?
我有一些代码创建一个带滑块的表格单元格.它非常简单,在iPhone上尺寸很好.我在这里稍微匿名了一下:
UITableViewCell* cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Foo"] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
CGRect contentViewFrame = cell.contentView.frame;
CGRect sliderFrame = CGRectMake(10, 0, 280, contentViewFrame.size.height);
UISlider* slider = [[UISlider alloc] initWithFrame:sliderFrame];
UIImage* minimumImage = [UIImage imageNamed:@"min.png"];
UIImage* maximumImage = [UIImage imageNamed:@"max.png"];
slider.minimumValueImage = minimumImage;
slider.maximumValueImage = maximumImage;
slider.value = 0.5f;
[slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[cell.contentView addSubview:slider];
[slider release];
Run Code Online (Sandbox Code Playgroud)
当然,iPad尺寸不正确.所以我的第一个想法是将autoresizingMask属性设置为UIViewAutoresizingFlexibleWidth.问题解决了吧?不.现在在iPhone上,滑块加图像内容的宽度小于280,因此它不会直到最后 - 它最终缩短约20像素.
在iPad上,同样的事情 - UISlider自动调整宽度大小比单元格末端短20个像素.
也许自动调整大小标志正在关注accessoryView细胞不存在?我尝试将其设置为nil显式,但我认为它是nil默认的,所以没有任何改变.
我希望这个单元格的内容自动调整为单元格的"全"宽度,无论设备和方向如何.是否有捷径可寻?
以下代码产生了这个不寻常的问题:
<script type="text/javascript">
$(document).ready(function () {
$('.deleteRow').click(function (event) {
event.preventDefault();
if (confirm('Delete?')) {
var $t = $(this);
$.post($(this).attr('href'), function (data) {
if (data) {
$t.parent().parent().remove();
}
});
}
return false;
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
提前致谢!
这是HTML:
<td> <%= Html.ActionLink("<-Delete", "Delete", new {quoteID = quote.QuoteID}, new {@class= "deleteRow"}) %></td>
<td> <a class="deleteRow" href="/Quote/Delete/56"><-Delete</a></td>
Run Code Online (Sandbox Code Playgroud)
我们在那里.
<tbody>
<tr>
<td>
<p>
asd</p>
<div firebugversion="1.5.4" id="_firebugConsole" style="display: none;">
&nbsp;</div>
<br />
</td>
<td>
2345
</td>
<td>
7/28/2010 3:26:10 PM
</td>
<td> <a class="deleteRow" href="/Quote/Delete/56"><-Delete</a></td>
<script type="text/javascript"> …Run Code Online (Sandbox Code Playgroud) 该速度的用户指南提到了一个"哈希表".然而,没有提到如何用这种语言创建一个.
所以,如果你能展示如何做到这一点 - 那么我就可以写出来了.喜欢
#foreach( $key in $foo.keySet() )
<li>Key: $key -> Value: $foo.get($key)</li>
#end
Run Code Online (Sandbox Code Playgroud)
- 非常感谢你的帮助.
提前致谢!
// PS:我原来的问题是:机械Turk/Cmd线工具/ Qualification/#set和#foreach in xml 所以请理解我对学习Velocity不感兴趣 - 如果可能的话我只需要一个快速的黑客.谢谢.
这是我的情况:我自学了C++(虽然相当糟糕),后来又学会了如何在大学里使用Java.回到C++,我发现自己对从C++到Java不同的几件事情感到困惑,例如内存管理和避免内存泄漏.
在C++中返回编程的最佳模式是什么?我应该再次阅读初学者指南,还是对我的情况有一些很好的参考?
所有帮助表示赞赏和谢谢!
我在这里看到一篇关于我想做什么的非常好的帖子,
它说要使用ConfigurationManager类.我无法引用ConfigurationManager类.
如果我查看我正在使用的system.dll(即v2.0.50727),则没有ConfigurationManager类.
我正在使用VS 2008,我的项目设置为.NET 3.5编译.
如果我这样做,
string test = System.Configuration.ConfigurationManager.AppSettings["test"];
Run Code Online (Sandbox Code Playgroud)
我收到消息'错误182类型或命名空间名称'ConfigurationManager'在名称空间'System.Configuration'中不存在(你错过了程序集引用吗?)'
有任何想法吗?
问候,
我正在研究一个基于JS的应用程序,它可以执行一些复杂的工作并记录一些信息(实际上,多达数百行)<div>.
我的目标是有一个"保存日志"按钮,触发浏览器的下载对话框以保存我的日志记录内容<div>.
更简洁地说,这些是此功能的要求:
text/plain,因此浏览器可以建议默认操作(如"在记事本上打开"),就像正常的文件下载一样.这可以被视为第一个要求的特定方面.<div>文本编辑器的内容复制粘贴到文本编辑器并将其保存在那里是绝对可怕的,这正是我试图避免的原因.我一直在这个网站上搜索,在WHATWG和W3C网站上以及网络上都没有成功.这可行吗?
我最接近的是使用data:网址.我的第一次尝试,执行POST操作,无法获得内容类型,所以它会回到UA的启发式.通过设置一个<a>看起来像一个按钮并给它一个type属性的链接,我得到了稍微好一些,但随后UA将发挥太聪明并呈现内容而不是保存(并要求用户在该步骤从浏览器保存文件)变得比采用复制粘贴方法更糟糕,因为页面保存在浏览器之间变化很大).
如果只是某种方式将data:网址与"内容处理"类似的提示结合起来,事情就会变得非常顺利.
此致,Herenvardo
javascript ×2
.net ×1
autoresize ×1
c# ×1
c++ ×1
dialog ×1
function ×1
html ×1
io ×1
ipad ×1
iphone ×1
java ×1
namespaces ×1
php ×1
python ×1
registry ×1
uitableview ×1
velocity ×1
winapi ×1