我必须编写自己的哈希函数.如果我想制作简单的哈希函数,将字符串中的每个字母映射到一个数值(即a = 1,b = 2,c = 3,...),有没有办法可以执行此哈希一个字符串,而不必先将其转换为一个c字符串来查看每个字符?是否有更有效的散列字符串方法?
我有以下两个类:
public class Address
{
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
public class Employee
{
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public Address EmployeeAddress { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个employee类的实例如下:
var emp1Address = new Address(); …Run Code Online (Sandbox Code Playgroud) 有没有一种方法来检测调用哪些API?假设我想要检测任何使用ReadProcessMemory API的应用程序.这在C#中有多可行?
我目前仍然坚持这个问题.我已经在我创建的类中迷上了method_missing函数.当调用一个不存在的函数时,我想调用另一个我知道存在的函数,将args数组作为所有参数传递给第二个函数.有谁知道这样做的方法?例如,我想做这样的事情:
class Blah
def valid_method(p1, p2, p3, opt=false)
puts "p1: #{p1}, p2: #{p2}, p3: #{p3}, opt: #{opt.inspect}"
end
def method_missing(methodname, *args)
if methodname.to_s =~ /_with_opt$/
real_method = methodname.to_s.gsub(/_with_opt$/, '')
send(real_method, args) # <-- this is the problem
end
end
end
b = Blah.new
b.valid_method(1,2,3) # output: p1: 1, p2: 2, p3: 3, opt: false
b.valid_method_with_opt(2,3,4) # output: p1: 2, p2: 3, p3: 4, opt: true
Run Code Online (Sandbox Code Playgroud)
(哦,顺便说一下,上面的例子对我不起作用)
编辑
根据提供的答案,这是可行的代码(上面的代码中有错误):
class Blah
def valid_method(p1, p2, p3, opt=false)
puts "p1: #{p1}, p2: #{p2}, …Run Code Online (Sandbox Code Playgroud) 我有一个装饰边框的装饰品(请参见下面的截图).但是,只有在单击装饰器中的元素时,才会引发Adorner的MouseDown事件.当点击装饰元素上方的装饰器中的任何位置时,我需要引发MouseDown事件.如何才能做到这一点?我是否必须在装饰器中添加透明控件,或者还有其他方法吗?谢谢你的帮助!
截图和VS 2008项目:http://cid-0432ee4cfe9c26a0.skydrive.live.com/browse.aspx/%C3%96ffentlich?uc=2
装饰代码:
class myAdorner : Adorner
{
public myAdorner(UIElement element)
: base(element)
{
this.MouseDown += new System.Windows.Input.MouseButtonEventHandler(myAdorner_MouseDown);
}
void myAdorner_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show("ok");
}
// Draws two rectangles: one in the upper-left and another one in the lower-right corner
protected override void OnRender(System.Windows.Media.DrawingContext drawingContext)
{
Size size = this.AdornedElement.RenderSize;
Rect r1 = new Rect(0.5, 0.5, 20, 20);
Rect r4 = new Rect(size.Width - 20.5, size.Height - 20.5, 20, 20);
SolidColorBrush brush = new …Run Code Online (Sandbox Code Playgroud) 我使用Scala插件在Eclipse中成功实现并运行了几个Scala教程.然后突然我尝试编译并运行一个示例,并出现此错误:
Exception in thread "main" java.lang.NoClassDefFoundError: hello/HelloWorld
Caused by: java.lang.ClassNotFoundException: hello.HelloWorld
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)
Run Code Online (Sandbox Code Playgroud)
在此之后,我再也无法在Eclipse中运行任何Scala程序.我尝试清理和重建我的项目,关闭并重新打开我的项目,关闭并重新打开Eclipse.
Eclipse版本号3.5.2和Scala插件2.8.0
这是原始代码:
package hello
object HelloWorld {
def main(args: Array[String]){
println("hello world")
}
}
Run Code Online (Sandbox Code Playgroud) 我已经在网上看到了关于在iPhone OS中使用自定义字体的困难的所有讨论.是否可以将我的包中的字体加载到UIWebView组件中?
编辑:我在"生锈砖"的应用程序"Omer"中看到它...它似乎是一个Web视图,因为我看到一个延迟,在加载延迟期间自定义区域是白色的.这有什么其他组成部分?
编辑2:我联系了Rusty Brick.他们告诉我它是哪种字体.标准字体.
我有一个网页,使用AJAX加载一些东西.我想在加载过程中显示带有加载指示符的叠加层,这样用户就无法与大部分页面进行交互 - 除了顶部的菜单.我正在使用jQuery和jQuery BlockUI插件来执行此操作.
我调用$(element).block()并且它工作正常,但覆盖只延伸到我页面的当前内容.随着更多内容被加载并添加到页面中,叠加层随之向下移动,这看起来有点难看.理想情况下,我希望它从一开始就覆盖整个页面的可见区域.这样做的一个简单方法就是为叠加设置一个较大的高度值,如下所示:
$(myElement).block({
overlayCSS: {
height: '10000px'
}
});
Run Code Online (Sandbox Code Playgroud)
...但这会创建一个滚动条!如何避免这种情况并将其设置为覆盖可见页面的正确高度,但不能将其放大?
我担心我知道这个问题的答案,但我会问远方机会我错了:
我一直在做一些为公司创建iPhone应用程序的自由职业者.他们创建了自己的开发者帐户,并将我添加为具有"管理员"权限的团队成员.这似乎是最高的可分配权利(唯一更高级别是"代理人",只属于注册帐户的人).但是,我在配置门户下没有选项来创建分发证书或配置文件.
有没有办法自己创建这些,而不必询问我的客户的主要登录?他们并不特别擅长技术,因此很难让他们完成创建必要证书的过程(并且需要我从他的计算机等处向他们提供证书请求).但似乎应该有一些方法来创建没有"代理"权利的分发版本,对吧?苹果公司是否真的希望公司中只有一个人能够将所有应用程序构建和上传到商店?
想象一下,我有一个这样的模板函数:
template<typename Iterator>
void myfunc(Iterator a, typename Iterator::value_type b)
{ ... }
Run Code Online (Sandbox Code Playgroud)
有没有办法通过为 Iterator::valuetype 声明一个 typedef 来实现同样的事情,我可以在函数签名中使用它?例如,我希望能够做这样的事情:
template<
typename Iterator,
typedef Iterator::value_type type>
void myfunc(Iterator a, type b)
{ ... }
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经使用默认模板参数和 Boost 概念检查来确保始终使用默认值:
template<
typename Iterator,
typename type = typename Iterator::value_type >
void myfunc(Iterator a, type b)
{
BOOST_STATIC_ASSERT((
boost::is_same<
typename Iterator::value_type,
type
>::value
));
...
}
Run Code Online (Sandbox Code Playgroud)
...但如果语言支持此类事情,那就太好了。
编辑
我可能应该使用类而不是函数,因为默认参数不是函数的标准。
template<
typename T,
typename V = typename T::value_type>
class A : public B<T, V>
{
BOOST_STATIC_ASSERT((boost::is_same<typename T::value_Type, V>::type));
};
Run Code Online (Sandbox Code Playgroud)