在C#中,当你这样做时
Class(Type param1, Type param2) : base(param1)
Run Code Online (Sandbox Code Playgroud)
是先执行的类的构造函数,然后调用超类构造函数还是先调用基础构造函数?
我正在使用mod_rewrite将漂亮的URL重写为Spring 2.5应用程序支持的表单.
e.g. /category/cat1?q=x => /controller?category=cat1&q=x
Run Code Online (Sandbox Code Playgroud)
但是,从我的控制器我想知道请求来自的原始URL(所以我可以生成链接,如果需要).所有页面通常都需要这种方法,因此很难进行硬编码.
如何从控制器访问原始路径+查询字符串?
我尝试使用$ 0来包含完整路径,但这不包括查询字符串.我不能只追加路径和查询字符串,因为这会导致路径的某些部分被添加为参数/category/cat1?category=cat1&q=x 注意添加不需要的&category=cat1参数,这会导致URL不再与浏览器发送的URL匹配.
我希望mod_rewrite允许我引用完整的URL并将其编码为参数,因此我的规则可能如下所示:
RewriteRule /category/(.+)
/controller?category=$1&_originalUrl=${escape:$0}?${escape:<original query string>}
[QSA]
Run Code Online (Sandbox Code Playgroud)
使用我的原始示例,最终结果传递给我的控制器将是:
/controller?category=cat1&_originalUrl=%2Fcategory%2Fcat1%3Fsearch%3Dx&search=x
Run Code Online (Sandbox Code Playgroud)
最重要的部分是的值&_originalUrl应该是%2Fcategory%2Fcat1%3Fsearch%3Dx这在其转义的版本/category/cat1?q=x(这是从浏览器发送的原始请求URL).
欢迎任何建议,提前谢谢!
我正在查看具有多个开发人员的多个命名约定的代码 - 一个真正的享受.其中包括匈牙利语("s_year","s_day")以及其他风格("yearS","dayS").
有谁知道这种风格叫什么?对于奖励积分,你知道它起源的地点/时间吗?
免责声明:奖励积分是假设的,仅根据要求授予.请提供5-12周的送货时间.
编辑:我想补充一点,在同一个文件中有第三种表示法("sYear","sDay").这是命名约定的帽子戏法!
可能重复:
调试R的一般建议?
我最近开始使用browser()函数定义进行调试(一个很棒的工具!).我觉得print()调试一直在减缓我内置调试工具的学习曲线.我失踪了的其他一些人是什么?
我有一些代码100%适用于我的用例.我只是想知道是否有人可以解释它是如何以及为什么有效.
我有一个模板类,它位于处理线程和网络通信的一些代码和库用户之间,用于将从服务器接收的数据传递给用户.
template <class Bar,
class Baz,
class BazReturnType,
void (Bar::*BarSetterFunction)(const BazReturnType &),
BazReturnType (Baz::*BazGetterFunction)(void) const>
class Foo
{
Foo( Bar *bar )
: m_bar(bar)
{
}
void FooMemberFunction( const Baz *baz )
{
boost::bind( BarSetterFunction, m_bar,
boost::bind( BazGetterFunction, baz )() ) ();
}
Bar *m_bar;
};
Run Code Online (Sandbox Code Playgroud)
这个模板被实例化并在库中使用,具体取决于Bar和Baz的类型,如下所示:
typedef Foo<MyBar,
MyBaz,
ReturnTypeFromBazGetterFunction,
&MyBar::ActualSetterFunction,
&MyBaz::ActualGetterFunction >
MyFoo;
MyBar *bar = new MyBar;
MyBaz *baz = new MyBaz;
MyFoo *f = new MyFoo( bar );
f->FooMemberFunction( baz );
Run Code Online (Sandbox Code Playgroud)
这一切都有效,boost :: bind调用getter/setter函数来传递数据需要去的地方. 如何以及为什么将指向成员函数的指针作为模板参数传递,就像在这种情况下一样? …
我们的mysql数据库中的某些字段似乎包含换行符,因此如果我对它们进行SELECT,则会为单个SQL调用返回类似以下内容:
Life to be sure is nothing much to lose
But young men think it is and we were young
Run Code Online (Sandbox Code Playgroud)
如果我想在网页上显示此字段时保留换行符,那么编写脚本以使用br HTML标记替换'\n\r'的标准解决方案还是有更好的方法?
谢谢!
我知道从Map的keySet()方法返回的Set不保证任何特定的顺序.
我的问题是,它是否保证多次迭代的相同顺序.例如
Map<K,V> map = getMap();
for( K k : map.keySet() )
{
}
...
for( K k : map.keySet() )
{
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,假设映射不修改,将迭代在按键组处于相同的顺序.使用Sun的jdk15它会以相同的顺序迭代,但在我依赖于这种行为之前,我想知道所有JDK是否都会这样做.
编辑
我从答案中看到我不能依赖它.太糟糕了.我希望不必为了保证我的订购而建立一些新的收藏品.我的代码需要迭代,执行一些逻辑,然后使用相同的顺序再次迭代.我将从keySet创建一个新的ArrayList,这将保证顺序.
如果你有同一个类的不同实例,例如' FootballTeam',并且你想让这个FootballTeam类的另一个实例知道发生了什么,那么最好的方法是什么?
事件不会真正起作用我猜...
例如:
FootballTeam A = new FootballTeam();
FootballTeam B = new FootballTeam();
// now A needs to let B know about it's manager change
// manager is a property inside this class...
Run Code Online (Sandbox Code Playgroud) 我在存储过程中使用TRY CATCH块,其中有两个INSERT指令.
如果出现问题,CATCH块会负责回滚所做的所有更改并且工作正常,除了一件事!
我的ASP.NET应用程序捕获的异常是一个数字为50000的SqlException.这不是原始数字!(我期待的数字是2627)
在异常的Message属性中,我可以看到原始的异常编号和格式化的消息.
我怎样才能获得原始的例外号码?
try
{
// ... code
}
catch
(SqlException sqlException)
{
switch (sqlException.Number)
{
// Name already exists
case 2627:
throw new ItemTypeNameAlreadyExistsException();
// Some other error
// As the exception number is 50000 it always ends here!!!!!!
default:
throw new ItemTypeException();
}
}
Run Code Online (Sandbox Code Playgroud)
现在,返回值已被使用.我想我可以使用输出参数来获取异常编号,但这是个好主意吗?
我该怎么做才能获得例外号码?谢谢
PS:这是必需的,因为我有两个INSERT指令.
c# ×4
apache ×1
asp.net ×1
boost ×1
c++ ×1
constructor ×1
debugging ×1
hashmap ×1
hashset ×1
html ×1
inheritance ×1
iteration ×1
java ×1
line-breaks ×1
mod-rewrite ×1
mysql ×1
newline ×1
parameters ×1
r ×1
regex ×1
sql ×1
standards ×1
templates ×1
url ×1