我正在做一个递归的svn add/commit,并且包含了一个没有正确的ignore属性的文件夹.我现在有大约100个已上传的二进制文件版本,但我尚未提交.
在不删除所有文档的情况下,"撤消"此操作的最简单方法是什么?
考虑到这种情况......
interface IBase{
void Process(int value);
}
abstract class Base : IBase
{
public virtual void Process(int value){ throw new NotImplementedException(); }
}
class Implemented: Base, IBase
{
public void Process(int value)
{
// .. some code here..
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写类似于以下的循环.
foreach( Base b in CollectionOfImplemented )
{
b.Process( // something will go here // );
}
Run Code Online (Sandbox Code Playgroud)
试试这个,它不断调用Base.Process,而不是Implemented.Process; 但是集合中的类型是Implemented,而不是Base.拳击它似乎工作,但我希望看看我是否能找到一个更智能的方法,因为集合将包含其他类型的对象也继承Base.
我需要能够在我的应用程序中的多个活动中使用一个对象,并且它需要是同一个对象.做这个的最好方式是什么?
我已经尝试将对象设置为"公共静态",因此可以通过其他活动访问它,但由于某种原因,这并没有削减它.还有另一种方法吗?
鉴于我有如下数据,我如何选择和分组字符串的一部分?
Version Users
1.1.1 1
1.1.23 3
1.1.45 1
2.1.24 3
2.1.12 1
2.1.45 3
3.1.10 1
3.1.23 3
Run Code Online (Sandbox Code Playgroud)
我想要的是总结使用 1.1.x 和 2.2.x 和 3.3.x 等版本的用户,但我不确定如何在 select 语句中对部分字符串进行分组。
编辑 什么数据应该返回是这样的:
Version Users
1.1.XX 5
2.1.XX 7
3.1.XX 4
Run Code Online (Sandbox Code Playgroud)
版本的数量是无限可变的,有些是这种格式(主要,次要,构建)有些只是主要,次要而有些只是主要,我唯一想“汇总”版本的时间是建造。
我正在玩一些代码来制作一个"封闭式"构造(不工作顺便说一句)
一切看起来都不错但是当我尝试访问代码中的最终局部变量时,InstantiationException
抛出了异常.
如果我通过完全删除局部变量或通过改为使用类属性来删除对局部变量的访问,则不会发生异常.
当应用程序尝试使用类Class中的newInstance方法创建类的实例时抛出,但无法实例化指定的类对象.实例化可能由于各种原因而失败,包括但不限于:
- 类对象表示抽象类,接口,数组类,基元类型或void
- 该类没有空构造函数
还有什么其他原因可能导致这个问题?
这是代码.注释/取消注释类属性/局部变量以查看效果(行:5和10).
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class InstantiationExceptionDemo {
//static JTextField field = new JTextField();// works if uncommented
public static void main( String [] args ) {
JFrame frame = new JFrame();
JButton button = new JButton("Click");
final JTextField field = new JTextField();// fails if uncommented
button.addActionListener( new _(){{
System.out.println("click " + field.getText());
}});
frame.add( field );
frame.add( button, BorderLayout.SOUTH );
frame.pack();frame.setVisible( true );
}
} …
Run Code Online (Sandbox Code Playgroud) 所以我想这样做:
switch (keyPath) {
case @"refreshCount":
//do stuff
case @"timesLaunched":
//do other stuff
}
Run Code Online (Sandbox Code Playgroud)
但显然你只能使用整数作为开关数量.唯一的方法是将字符串解析为整数标识符然后运行switch语句吗?
像这样:
nsinteger num = nil;
if (keyPath isEqual:@"refreshCount") {
num = 0
}
if (keyPath isEqual:@"timesLaunched") {
num = 1
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试尽可能快地优化此代码,因为它会经常被调用.
谢谢,
缺口
注意:是的我正在使用KVO,所以我在"回调"中收到一个字符串.
注意#2:那么是什么让我首先考虑switch语句是我原来的代码实现是这样的:
if ([keyPath isEqual:@"refreshCount"] && ([[change valueForKey:@"new"] intValue] == 10)) { //
NSLog(@"achievemnt hit inside");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"title" message:@"Achievement Unlocked!" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:nil];
[alert show];
Run Code Online (Sandbox Code Playgroud)
我想在同一个方法中用不同的XX值做一堆这些:
if ([keyPath isEqual:@"refreshCount"] && ([[change valueForKey:@"new"] intValue] == 10)) {
//unlock …
Run Code Online (Sandbox Code Playgroud) 假设我有一个Java类
abstract class Base {
abstract void init();
...
}
Run Code Online (Sandbox Code Playgroud)
而且我知道每个派生类都必须init()
在它构造之后调用.当然,我可以简单地在派生类的构造函数中调用它:
class Derived1 extends Base {
Derived1() {
...
init();
}
}
class Derived2 extends Base {
Derived2() {
...
init();
}
}
Run Code Online (Sandbox Code Playgroud)
但这会破坏"不要重复自己"的原则而且会很糟糕(而且会有很多子类Base
).当然,init()
调用不能进入Base()
构造函数,因为它会被执行得太早.
任何想法如何绕过这个问题?我也很高兴看到Scala解决方案.
更新:这是工厂方法方法的通用版本:
interface Maker<T extends Base> {
T make();
}
class Base {
...
static <T extends Base> T makeAndInit(Maker<T> maker) {
T result = maker.make();
result.init();
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
更新2:这个问题基本上是"你如何使用模板方法为构造函数"?答案似乎是,"你可以,但这是一个坏主意".所以我可以做一个模板工厂(模板方法+抽象工厂).
在Visual Studio中有没有办法将文本转换为C#字符串文字并返回?
例如,如果我有文字:
Lorem ipsum dolor sit amet, consectetuer adipiscing
elit, sed diam nonummy nibh euismod tincidunt ut
laoreet dolore magna aliquam erat volutpat.
Run Code Online (Sandbox Code Playgroud)
我可以轻松地将其转换为:
"Lorem ipsum dolor sit amet, consectetuer adipiscing\n" +
"elit, sed diam nonummy nibh euismod tincidunt ut\n" +
"laoreet dolore magna aliquam erat volutpat."
Run Code Online (Sandbox Code Playgroud)
然后使用宏或一些实用程序将其转换回来?
我有一个分组查询,并希望根据count(*)过滤它
没有子查询我可以这样做吗?
这就是我目前所拥有的:
select *
from (select ID,
count(*) cnt
from name
group by ID)
where cnt > 1;
Run Code Online (Sandbox Code Playgroud) 我有Checkboxlist,我不能给它所需的字段验证器或自定义验证器.它给了我运行时异常.
语言:使用asp.net的Vb.net