问题列表 - 第12642页

IEnumerable列表通过覆盖链

好吧,很难说出这个问题的确切标题,但是这里...我有一个名为Block的抽象类,看起来像这样:

public abstract class Block
{
   public bool Enabled{get; private set;}

   public virtual IEnumerable<KeyValuePair<string, string>> GetDefaultUsages()
   {
      yield return new KeyValuePair<string, string>("Enabled", "true");
   }
}
Run Code Online (Sandbox Code Playgroud)

并说我有一个子类:

public class Form : Block
{
   public string Key{get; private set;}

   public override IEnumerable<KeyValuePair<string, string>> GetDefaultUsages()
   {
       yield return new KeyValuePair<string,string>("Key", string.Empty);

       // can't do: yield return base.GetDefaultUsages()
   }
}
Run Code Online (Sandbox Code Playgroud)

我们的想法是,GetDefaultUsages()将始终返回一个IEnumerable,其中包含通过整个继承链指定的所有字符串,字符串对.我最初希望yield关键字支持如下语句:

yield return (some IEnumerable<T> object);
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用.我意识到我能做到:

foreach(KeyValuePair<string, string> kv in base.GetDefaultUsages())
{
   yield return kv;
}
Run Code Online (Sandbox Code Playgroud)

但我希望语法略微清晰(避免创建所有不必要的中间IEnumerator).

任何人有任何想法的好方法来实现这个???

.net c# ienumerable

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

C++游戏,课堂设计和职责

我刚刚读了一些关于主题的相关问题,所以我会尽量不重复这些问题.

我最近开始重新审视一个我在两三年前开始的学习项目 - 一个Mega Man引擎的C++端口.是的我用过撕裂的精灵.我还使用游戏引擎库进行绘图,音乐和输入.

我的原始代码是残暴的.虽然它可以(但几乎没有)被称为OO,但它完全忽略了这一点.我开始添加类似接口的东西,并删除了大量重复的代码.有一些我不确定的事情,因为游戏设计有时变得非常复杂.

代表我的游戏库的对象目前是全局的(我知道全局变量通常很糟糕),因为许多对象可能会依赖它来加载艺术或音乐.什么是将该对象从全局范围中拉出来的最佳方法,而不必将50个参数传递给否则将直接使用它的所有内容?

下一个问题:众所周知,Mega Man会射出许多小小的白色射弹.目前,Player对象负责他发射的Projectile对象,更新它们的位置等(字面意思是,在Player :: Update()方法中,每次镜头调用一次Projectile :: Update()方法).这是错误的方法吗?我的第一个改进是让所有这些对象实现了DrawingObject接口,这样我的游戏就可以绘制所有内容.为Updates做同样的事情意味着我将玩家的控制权从玩家手中夺走并将其交给更广泛的Game对象.我对此犹豫不决的原因是它感觉像上帝对象反模式.或者我误解了反模式?还有其他复杂性 - 射弹如果离开可见屏幕就会死亡,因此任何更新射弹的调用都需要调用者能够访问屏幕对象.

这一切都是现在,当我到达他们时,我会回来遇到更多问题.第一篇文章结束!

c++ oop

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

为什么为Java的Hibernate库选择了名称"Hibernate"?

术语"休眠"是否意味着与ORM库有关的特定内容?背后有故事吗?

java hibernate

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

你如何从JSF 2.0 Facelets模板调用List.size()?

在JSF 2.0 Facelets模板中调用list.size()的语法是什么(例如,使用h:outputText元素)?

java jsf facelets java-ee-6

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

为什么IE和Firefox为div返回不同的溢出维度?

div的固定大小为100px.scrollWidth并且scrollHeight工作正常,如果在文本div是正常的(无字足够长,完全填补了一行).但是,如果有任何文字,其中一个单词渲染宽度大于100px,则会导致问题.

假设文本类似于"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890":那么Firefox返回错误scrollWidth(在这种情况下为100,即使div溢出也与实际宽度相同).但是,IE正确scrollWidth(在这种情况下为180).

请帮助我scrollWidth在Firefox中正确使用.对不起,如果我的问题看起来很模糊

javascript css firefox internet-explorer dom

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

Rails:验证关联的存在

我有一个Category和一个Post模型,每个Post都属于一个Category.在创建或更新帖子之前,我需要检查所选的类别是否存在.验证此信息的最佳方法是什么?

目前,我正在控制器中进行查找,以确保该类别存在.是否可以在模型中加入这些验证?

ruby-on-rails

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

在Java J2ME中加载图像

我在使用java 2ME加载图像时遇到问题.我在位置驱动器"C:"中有一个图像文件"picture.png".在那之后,我写了这样来显示这个位置的图像.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;

public class ImageMidlet extends MIDlet implements CommandListener{
    private Display display;
    private Command exitCommand;
    private Command backCommand;
    private Command okCommand;
    private Form form;

    private ImageItem imageItem;
    private Image image;

    public ImageMidlet(){
        display = Display.getDisplay(this);
        form=new Form("");
        exitCommand = new Command("Exit", Command.EXIT, 1);
        backCommand = new Command("Back", Command.BACK, 2);
        okCommand = new Command("OK", Command.OK, 3);

        try {
            image=Image.createImage("/picture.png");
            imageItem=new ImageItem(null,image,ImageItem.LAYOUT_NEWLINE_BEFORE,"");
        }
        catch(IOException ex){

        }
        form.append(imageItem);
        form.addCommand(okCommand);
        form.addCommand(exitCommand);
        form.addCommand(backCommand);
        form.setCommandListener(this);

        display.setCurrent(form);

    }

    public void commandAction(Command …
Run Code Online (Sandbox Code Playgroud)

java midp lcdui java-me

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

未初始化的常量MysqlCompat :: MysqlRes(使用mms2r gem)

将我的rails应用程序移动到新服务器上,并且必须安装一些gem依赖项.但是,安装mysql gem之后,每当我尝试运行涉及mysql数据库的rake命令时,我都会收到错误,未初始化的常量MysqlCompat :: MysqlRes.当我需要mms2r gem时,我似乎只得到这个错误.有没有人听说过这个?我正在运行mysql 2.8.1 gem.

mysql rake ruby-on-rails

22
推荐指数
4
解决办法
3万
查看次数

为什么不能只将php转换为mysql的html实体?

PHP在默认情况下使用"魔术引号",但它已经有很多瑕疵.我知道它将在下一个主要版本的PHP中禁用它.

虽然反对它的论据是有道理的,但我不明白为什么不只是使用HTML实体来代表引号而不是剥离和删除斜杠?毕竟,VAST的大部分mySQL用于输出到Web浏览器?

例如,' 用来代替',它根本不会影响数据库.

另一个问题,为什么PHP只能为每个版本的PHP设置配置<?php4或<?php5,以便为这些版本加载适当的解释器?

只是好奇.:)

html php magic-quotes html-entities

3
推荐指数
2
解决办法
7137
查看次数

PHP的p*connect方法如何工作?

我的理解是PHP的p*连接是它在页面加载到服务之间保持连接(无论是内存缓存还是套接字等).但这些连接是否安全?当两个页面同时尝试访问同一个连接时会发生什么?

php networking

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