小编Kin*_*pus的帖子

带字符串键的GetHashCode()

嘿所有,我一直在阅读实现.NET中对象的GetHashCode()覆盖的最佳方法,并且我遇到的大多数答案涉及以某种方式将来自数字类型的成员的数字混合在一起来提出方法.问题是,我有一个使用字母数字字符串作为其键的对象,我想知道是否有一些根本错误的东西只是使用内部ID作为键的字符串的对象,如下所示?


// Override GetHashCode() to return a permanent, unique identifier for
// this object.
static private int m_next_hash_id = 1;
private int m_hash_code = 0;
public override int GetHashCode() {
  if (this.m_hash_code == 0)
    this.m_hash_code = <type>.m_next_hash_id++;
  return this.m_hash_code;
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的方法为使用字母数字字符串作为键的对象提供唯一的哈希码?(不,字母数字字符串的数字部分不是唯一的;其中一些字符串实际上根本没有数字.)任何想法都将不胜感激!

.net c# gethashcode c#-2.0

14
推荐指数
2
解决办法
2万
查看次数

跳转列表和Windows窗体

我已经阅读了一些关于实现Windows 7跳转列表的Stack Overflow的其他文章,但它们都来自几年前,基本上建议"获取Windows API代码包".(答案1,答案2,...)我正在尝试在Windows 7中实现一个跳转列表,看起来实际上在.NET 4中实现了一个实现此功能的JumpList类,所以我在想以前的答案可能已过时,不再需要Windows API代码包.

但是,文档中给出的示例依赖于我不熟悉的XAML,只开发了Windows窗体应用程序.此外,JumpList.SetJumpList方法需要一个System.Windows.Application对象,在我的生命中,我无法弄清楚如何从我的Windows窗体应用程序(它使用System.Windows.Forms.Application静态对象)中检索).有一个属性System.Windows.Application.Current,但在我的Windows窗体应用程序中,它返回null.

所以我的问题是:

  1. 我是否真的需要Windows API代码包才能在我的Windows窗体应用程序中实现跳转列表?

  2. 有谁知道一个很好的Windows窗体相对简单的示例教程,它显示了如何实现跳转列表?

  3. 我只是忽略了一些无法检索我的System.Windows.Application对象的东西吗?

c# jump-list windows-7 winforms

6
推荐指数
1
解决办法
1600
查看次数

如何使用/*servlet-mapping调度到WEB-INF?

我仍然是编程Java servlet的新手,所以如果我发生错误,请提前道歉.(但如果是这样,我会感激任何帮助!)

我的网站将有两个主要部分:Web服务部分和"其他所有"部分,后者将为大多数交互式浏览器请求提供服务.我以为我可以在我的web.xml文件中使用类似的东西:

<servlet>
    <servlet-name>Webservice</servlet-name>
    <servlet-class>com.mydomain.webservice</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Webservice</servlet-name>
    <url-pattern>/webservice/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Interactive</servlet-name>
    <servlet-class>com.mydomain.interactive</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Interactive</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

目的是Web服务,它通过AJAX,胖客户端应用程序或其他RPC方法进行通信,以使用所有以mydomain.com/webservice开头的URL,例如:

  • mydomain.com/webservice/login
  • mydomain.com/webservice/viewuser/12345
  • mydomian.com/webservice/deleteitem/abc
  • ...

但是,通常使用浏览器浏览网站的人会访问该网站:

  • mydomain.com(主页)
  • mydomain.com/login
  • mydomain.com/viewuser/12335
  • mydomain.com/deleteitem/abc
  • ...

在我的交互式类中,我正在解析getPathInfo()结果以将请求转发到另一个类,并且绝大多数这些类中的绝大多数使用请求调度程序来转发信息以查看JSP文件以实际呈现HTML.所以我的一个类中的代码片段可能如下所示:

RequestDispatcher view = req.getRequestDispatcher("/WEB-INF/views/master.jsp");
view.forward(req, resp);
Run Code Online (Sandbox Code Playgroud)

我也在交互式servlet中进行错误检查,这样如果用户试图访问不可路由的URL(例如,当我没有定义任何东西来处理foobar时,mydomain.com/foobar),它会抛出一个HTTP但是,当我启动它时,一切都会产生HTTP 404.

经过一些故障排除后,我发现请求正在向servlet发出没有任何问题,并且servlet正在正确解析它.但是,当它尝试将其转发到/WEB-INF/views/master.jsp时,它会再次调用servlet.我认为WEB-INF是一个"魔术"目录,代表了公共无法访问的资源,但看起来我的Java容器(Jetty,通过Eclipse的Google App Engine插件)将其视为尝试访问URL.我猜这是因为当我将/*定义为我的web.xml文件中的url-pattern时,它实际上将其解释为,将所有内容发送到该servlet,包括将请求转发到WEB中的JSP视图文件的调用 - INF目录.

难道我做错了什么?我还没有尝试处理对Web服务的请求,而我只是试图处理对交互式站点的请求.任何帮助将不胜感激!

java web.xml servlets

5
推荐指数
1
解决办法
3380
查看次数

标签 统计

c# ×2

.net ×1

c#-2.0 ×1

gethashcode ×1

java ×1

jump-list ×1

servlets ×1

web.xml ×1

windows-7 ×1

winforms ×1