如何在Visual Studio 2005和/或2008中突出显示活动行?我希望当前的行能够像其他IDE和文本编辑器那样突出显示,例如Eclipse和UltraEdit.ReSharper 可以做到这一点,但它需要额外的费用.
假设我的任务是编写某种RPG代码.这意味着,例如,我想要跟踪其状态,如智力,伤害奖励或生命值.Character
GameCharacter
我非常害怕在项目结束时我最终可能会处理非常多的字段 - 对于每一个我都必须确保他们遵循一组非常相似的约束和行为(例如,我希望它们在最小值和最大值之间受限制;我希望能够区分"基值"和"临时奖励";我希望能够增加和减少两者而无需通过设置者和吸气剂) .突然之间,对于每个领域,我都需要一个(两个?)吸气剂和四个安装者,也许还需要几个重置器!即使是10个字段,这意味着很多方法都很相似,eek.
对于DRYness,我已经开始封装了在Field
类中弄乱那些统计数据的逻辑,这样我就可以编写代码如intelligence.applyBonus(10)
或hitpoints.get()
(注意返回的值在范围内)等等.我甚至已经花了这么长的时间来创建类将这些字段组合在一起,但现在不是重点.
现在,我打了这个问题,而"堵" Field
到GameCharacter
:大多数Java教科书上说,每个类应该具有公共getter和setter私人领域.这在理论上听起来不错,而且我已经建立了一个整体课程int
; 然而,当你发现自己打电话给吸气剂时,这个想法听起来并不那么坚固......一个吸气剂:
thisCharacter.getIntelligence().get() //eeek
Run Code Online (Sandbox Code Playgroud)
我宁愿直接进入这个领域.也许这是我的Python/VB [1]"背景",但对我来说它更清晰,更清晰,更直接:
thisCharacter.intelligence.get()
Run Code Online (Sandbox Code Playgroud)
公共领域的(理论)问题是我放弃对它的所有控制; 例如,在代码库中的某些其他点,由于不幸,可能会发生以下情况:
thisCharacter.intelligence = somethingThatReallyIsNull;
Run Code Online (Sandbox Code Playgroud)
听起来像一个微妙的错误...但是......我的意思是,我真的应该担心吗?我从来没有打算Field
直接分配[2],我在Javadoc中记录了这不是应该做的事情,但我仍然是新来的,所以我有点撕裂.
所以我想听听你对这个主题的看法.封装的优势是如此巨大,以至于我应该继续使用吸气剂和吸气剂等等......或者我应该采取健康措施的封装并留下Field
作为一个public
领域?
[1]是的,我知道.我一直试图忘记.但我们最近也看到了一些C#和男人,不是属性甜.那好吧.
[2]除了在构造函数中!一个吸气剂不会让我摆脱错误的构造函数.
我试图使用isAuthorized()方法来检查管理标志,但似乎永远不会调用该函数.即使我将函数设置为始终返回false,它也允许任何用户.它似乎没有被调用.
我是否需要做更多的事情而不是设置$ this-> Auth-> authorize ='controller'?
来自/app/app_controller.php
class AppController extends Controller
{
var $components = array('Auth');
function beforeFilter()
{
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'pages', 'display' => 'home');
$this->Auth->logoutRedirect = '/';
$this->Auth->authorize = 'controller';
$this->Auth->userScope = array('User.active' => 1);
}
function isAuthorized()
{
if (strpos($this->action, "admin_") != false)
{
if ($this->Auth->user('isAdmin') == '0')
{
return false;
}
}
return true;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用ZedGraph,我想通过按住Ctrl
并用鼠标左键拖动框来缩放到选定区域,而不是用鼠标中键单击并拖动.
默认行为是只用鼠标左键进行缩放,用鼠标中键平移,但我已经切换了这两个操作.
有没有人知道如何通过单击并使用左键拖动来调用平移(不按住Ctrl键)并通过按住Ctrl
然后单击并使用左键拖动来调用缩放?
有谁知道如何以编程方式扩展Flex中的AdvancedDataGrid树列的节点?如果我使用树,我会使用这样的东西:
dataGrid.expandItem(treeNodeObject, true);
Run Code Online (Sandbox Code Playgroud)
但我似乎无法访问AdvancedDataGrid中的此属性.
我在我的Web应用程序中实现了一个Repeater来显示数据.我想在类似于GridView中的内置功能的列中添加功能操作链接.任何人都可以给我所需的步骤吗?我假设我将为每一行添加一个LinkButton控件,以某种方式将OnClick事件处理程序设置为指向相同的方法,并以某种方式将行上的唯一标识符作为参数传递.
谢谢!
对命名强大的程序集进行哪些更改需要更改AssemblyVersionAttribute?显然,以可能需要客户端进行代码更改的方式更改公共API需要增加AssemblyVersion.但是,对于不需要在客户端中进行代码更改的公共API的更改呢?例如:
必须在MSDN上的某个地方有明确的文档(或者,在某些MSSE的个人博客上了解MS).但我根本找不到它.请帮忙!
我负责将Delphi 2007应用程序移植到C#,并且完全没有使用Delphi的经验.我想知道Delphi包括的两个Indy版本之间有什么区别--Indy 9和Indy 10.此时我甚至不知道什么是Indy.有人可以帮我吗?它们只是Delphi库的不同版本吗?使用其中一个有什么含义?
谢谢!
我刚刚完成我进入 第14届Ludum敢为天下先的48小时内的游戏制作大赛昨天,决定使用的Java2D为显卡做在Java中.
我对API并不熟悉并且没有做过很多图形编程,但是我的游戏很小(只有十几个非常小的移动对象)所以我认为我可以天真编程并且仍然没有遇到任何性能问题.
不用说,我错了.游戏大部分时间都表现不错,但是一旦有太多的"敌人"在屏幕上移动或者分辨率过高而开始变得明显变慢.
我已经确定了屏幕绘图功能的性能瓶颈,当这些功能被评论出来时游戏速度非常快.
有人可以告诉我这里我可能做错了什么吗?(非常短的)源代码位于此处,其中大部分是Main类,通常的嫌疑人是在内部游戏循环中调用的draw()函数.
我已经使用BufferStrategy来更新屏幕,所以除非我做错了,否则不应该是问题.
提前谢谢,Ido.