问题列表 - 第43223页

具有公共getter的抽象属性,可以在具体类中定义私有setter吗?

我正在尝试创建一个使用getter定义属性的抽象类.我想将它留给派生类来决定是否要为属性实现setter.这可能吗?

到目前为止我所拥有的:

public abstract class AbstractClass {
    public abstract string Value { get; }
    public void DoSomething() {
        Console.WriteLine(Value);
    }
}

public class ConcreteClass1 : AbstractClass {
    public override string Value { get; set; }
}

public class ConcreteClass2 : AbstractClass {
    private string _value;
    public override string Value {
        get { return _value; }
    }
    public string Value {
        set { _value = value; }
    }
}

public class ConcreteClass3 : AbstractClass {
    private string _value;
    public override string …
Run Code Online (Sandbox Code Playgroud)

c# getter setter abstract-class properties

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

为什么浏览器会在style.height上返回空字符串?如何获得元素的实际高度?

简单的一行html:

<div onclick="alert(this.style.height)">sometext</div>

和警报给出:

http://i55.tinypic.com/2rxdtgo.png

但它应该像10px或那样.

javascript css height

9
推荐指数
2
解决办法
8335
查看次数

在.htaccess中重写index.php和index.html

使用.htaccess,如何重写URL,以便在访问者输入时:

http://www.domain.com/index.php
http://www.domain.com/index.html
Run Code Online (Sandbox Code Playgroud)

他们将被重定向到http://www.domain.com/.

我尝试了重定向,但它让我在循环中......

如果你能帮助我,请.

.htaccess mod-rewrite redirect url-rewriting

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

将对象附加到二进制文件

你有以下方法:

public static void writeToBinary(Object obj, String filename) 
{
 ObjectOutputStream oos = null;
 try {
  oos = new ObjectOutputStream(new FileOutputStream(filename));
  oos.writeObject(obj);
 } catch (Exception e) {
  e.printStackTrace();
 }  finally{
  try{
   if (oos != null) oos.close ();
  }catch (Exception e){
   e.printStackTrace();
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,该方法将对象写入二进制文件.

但是现在您想要重写相同的方法以允许将对象附加到同一文件.
好的,你看一下java文档,你会发现你必须在FileOutputStream中添加一个值为true的参数:

oos = new ObjectOutputStream(new FileOutputStream(filename, true));
Run Code Online (Sandbox Code Playgroud)

你编译但是,哎呀!似乎它继续覆盖文件.

好吧,问题就开始了.在google中搜索后,您会发现必须使用SAME ObjectOutputStream将对象附加到同一文件中.你希望有一个函数,每次调用它时,它都会追加一个对象.即:

writeToBinary("a", filename);
writeToBinary("b", filename);
Run Code Online (Sandbox Code Playgroud)

但正如我之前所说,你必须使用相同的ObjectOutputStream.

解决方案1:

ObjectOutputStream out = getOutputStream (filename);
writeToBinary("a", out);
writeToBinary("b", out);
writeToBinary("c", out);
out.close ();
Run Code Online (Sandbox Code Playgroud)

这非常难看,因为我想隐藏流的使用.

还有其他解决方案吗?

编辑:该方法是静态的.它位于实用程序类中,其中所有方法都是静态的.

编辑2:解决了!附加到ObjectOutputStream …

java

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

Python Tkinter填充问题

我正在学习Tkinter并构建一个简单的8益智游戏.
(例如:http://www.permadi.com/java/puzzle8/)

每个数字都是使用网格布局放置到框架中的Canvas对象.其中一个对象是在Canvas对象之间添加额外的填充.我将Canvas对象的边框宽度设置为-2,这解决了一些人的问题,但这只会略微减少我的额外填充.将此值设置为-4开始切入我的画布区域.

我假设网格布局的单元格有一些默认的填充或边框宽度,但我还没有找到一种方法来删除它.在Canvas对象上调用grid()时设置padx,pady,ipadx,ipady值似乎也没有帮助.

我发现的另一个奇怪之处是当我为Canvas对象创建一个边框时,我使用了create_rectangle,但是我必须以4,4开始x_1和y_1而不是0,0或2,2这是我期望的2px边框.

这是我的代码.任何帮助/建议/解决方法/否则非常感谢.

#!/usr/bin/python

from Tkinter import *

class Number(Canvas):
    def __init__(self, master=None, number=1):
        Canvas.__init__(self, master, width=100, height=100, bd=-2)
        self.create_text(50, 50, text=str(number), anchor=CENTER)
        self.create_rectangle(4, 4, 98, 98, width=2)


class Application(Frame):
    def create_widgets(self):
        self.playarea = Frame(self, width=300, height=300)
        self.playarea.grid_propagate(0)
        self.playarea.grid()
        self.playarea.numbers = []
        for number in xrange(1, 10):
            num_obj = Number(self.playarea, number)
            self.playarea.numbers.append(num_obj)
            row = number // 3
            col = number % 3
            num_obj.grid(row=row, column=col)

    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()


def main(): …
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

如何使用 PHPUnit 的 setExpectedException()?

使用 PHPUnit,我可以成功测试对类的特定调用是否正确引发了如下异常:

try 
{
    $dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');   
}
catch (Exception $ex) 
{
    return;
}
$this->fail("Import_Driver_Excel::get_file_type_from_file_name() does not properly throw an exception");
Run Code Online (Sandbox Code Playgroud)

但我在这里读到有一种更简单的方法,基本上在一行中使用setExpectedException()

class ExceptionTest extends PHPUnit_Framework_TestCase
{
    public function testException()
    {
        $this->setExpectedException('InvalidArgumentException');
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我如何让它像上面的例子一样工作,即我想测试这个类是否只有在我用“BAD_NAME.nnn”进行特定调用时才会抛出这个异常这些变体不起作用:

$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn');  
$this->setExpectedException('Exception');
Run Code Online (Sandbox Code Playgroud)

也不是这个:

$this->setExpectedException('Exception');
$dummy = Import_Driver_Excel::get_file_type_from_file_name('BAD_NAME.nnn'); 
Run Code Online (Sandbox Code Playgroud)

如何使用 setExpectedException() 替换上面的工作示例?

php phpunit

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

如何简单地获得一个装配指令的机器代码?

如何简单地获取一个汇编指令的代码?

例如"mov eax 0x14".我想在linux终端中使用gcc或gdm获取它.

linux assembly gcc

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

更新表而不使用更新语句

任何人都可以告诉如何在不使用update语句的情况下更新表的某些记录.可以使用select语句.

sql

2
推荐指数
1
解决办法
4537
查看次数

扩展方法与静态实用程序类

我正在寻找在C#应用程序中使用扩展方法而非静态实用程序类的一些优缺点.

例如,扩展方法列中的一个加号是通过类名调用而不是像"StringUtils"那样的方便.但是,它可能会模糊框架内部和非框架之间的界限.

.net c# extension-methods design-patterns

40
推荐指数
3
解决办法
1万
查看次数

ASP.NET MVC主详细信息输入表单

我正在尝试使用ASP.NET MVC实现订单输入表单,但面临很多困难.我找到的所有样本都与查看主要详细信息表单有关,而没有用于添加或编辑.

假设我有两个表:Order和OrderLines,它们彼此相关,具有一对多的关系.在主视图中,我点击时有一个"新建"按钮,它应显示由订单字段组成的新订单视图,显示订单行的网格,以及点击时将保留整个订单的"保存"按钮它的行成为一个数据库.网格应该有三个按钮:"添加线","编辑线"和"删除线".单击"添加行"时,应显示一个新视图,允许用户将行添加到订单视图网格线 - 在此阶段,数据库不受影响.当用户单击"编辑行"时,将显示一个视图,允许用户编辑所选行,完成后更新订单网格线.

最困难的问题是:

如何在订单视图和订单行视图之间传递订单及其行集合?

如何根据订单行视图中的更改更新订单视图?

如何在不涉及数据库的情况下在视图之间保持更改?

是否有一个具体的例子说明如何使用MVC实现它?

查看

感谢您的帮助和反馈.

forms asp.net-mvc data-entry master-detail

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