小编ale*_*exD的帖子

何时添加组件类与用户控件?

我有一个大致的想法,并且有一些明显的情况,但是对我来说也有一些灰色区域 - 何时最好用于从组件扩展以及何时最好创建用户控件?这与我试图解决的具体工作问题有关,但具体问题并不重要 - 这个问题的一般答案对我来说已经足够了.

c# user-controls controls components

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

具有数据模型对象的Demeter定律

昨天我从假期回来工作,在我们的日常站立中,我的队友们提到他们正在重构我们的java代码中的所有模型对象以删除所有的getter和setter,并使模型字段成为所有公共对象,调用Law of Law德米特之所以这样做是因为

为了方便我们遵守得墨忒耳定律:模块不应该知道它操纵的"物体"的内部.由于数据结构不包含任何行为,因此它们自然会暴露其内部结构.因此,在这种情况下,德米特不适用.

我承认我必须了解我对LoD的了解,但对于我的生活,我找不到任何迹象表明这符合法律的精神.我们模型中的getter/setter都不包含任何业务逻辑,这是他这样做的理由,因此这些对象的客户端无需了解是否在get/set方法中执行了某些业务逻辑.

我认为这是对需要"对象结构的内部知识"意味着什么的误解,或者至少在字面意义上并且在这个过程中打破了一个非常标准的约定.

所以我的问题是,直接暴露模型对象内部结构而不是通过LoD名称中的getter/setter实际上是否有意义?

java design-patterns law-of-demeter

12
推荐指数
2
解决办法
1833
查看次数

如何将十六进制字符串转换为有符号整数?

我得到一个十六进制字符串,需要转换为带符号的8位整数.目前我正在使用Int16/Int32进行转换,这显然不会给出8位整数的负值.如果我在十六进制中得到值255,我如何将其转换为十进制的-1?我假设我想使用sbyte,但我不确定如何正确地获得该值.

.net c# hex signed integer

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

如何在我的Android应用程序中获取SQLite数据库的URI?

我有一个带有名为"myTestDB"的数据库的Android应用程序,其中包含一个名为"list_items"的表.我想使用Cursor getContentResolver().query()方法来获取要添加到SimpleCursorAdapter的游标.query()方法的第一个参数是一个URI,我不确定URI应该是什么样子.

database android uri

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

ContainsKey和TryGetValue的性能是什么?

我准备采访,一些明显的采访问题,如计算字符串中字符的频率,包括将所有字符放入Hashtable/Dictionary,以获得算法的O(n)运行时间.我的问题是,使用ContainsKeyTryGetValue检查密钥是否已插入Hashtable的性能是多少?我是否仍然可以使用O(n)算法来解决这些问题,ContainsKey或者使用TryGetValue

.net c# algorithm big-o

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

为Android应用程序刮取此HTML的最佳方法是什么?

从网页中删除以下HTML的最佳方法是什么?我想拉出Apple,Orange和Grape并将它们放入我的Android应用程序的下拉菜单中.我应该使用Jsoup,如果是这样,最好的方法是什么?我应该使用正则表达式吗?

<select name="fruit" id="fruit" >
<option value="APPLE">Apple</option>
<option value="ORANGE">Orange</option>
<option value="GRAPE">Grape</option>
</select>
Run Code Online (Sandbox Code Playgroud)

java android screen-scraping web-scraping jsoup

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

RoR中的视图和布局有什么区别?

有什么不同?我问,因为我刚刚启动RoR开发,我需要修改一个应用程序来为页面添加一个新的div.我希望能够独立渲染这个div,目前rhtml代码是将要呈现的页面视图的一部分.我假设我需要将其移动到目前为止我收集到的部分布局中.

ruby-on-rails ruby-on-rails-3

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

c#:如何确定当前是否显示Scrollable控件的ScrollBar?

有没有办法检查当前是否显示控件的滚动条?我想使用它,所以我可以确定如何调整Scrollable控件的子项的大小,这在某种程度上取决于是否显示ScrollBar(可以动态调整Scrollable控件的大小).

c# controls scroll resize scrollbar

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

条件空检查的NullReferenceException?

我正在尝试修复一个我无法重现的错误(yipeee!).我有最初发现问题的用户复制的堆栈跟踪,它显示了在检查对象为null的行上抛出空引用异常(未处理)的代码.如下所示:

private void someFunction()
{
    radioButton1.CheckedChanged -= checkedChangedEventHandler
    radioButton2.CheckedChanged -= checkedChangedEventHandler

    if (someObject != null)  // throws NullReferenceException...allegedly
    {
         if (someObject.Property == something)
         {
            // set properties on some UI components
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

什么样的条件会导致这种情况?

UPDATE

添加了一些代码.SomeCunction方法由checkedChanged事件处理程序调用.

更新2

堆栈跟踪必须是错误的,因为你们有几个人建议.没有运算符重载,并且该方法仅引用四个非UI组件的对象(标签和单选按钮),并且所有这些对象在初始化时仅分配一次,并且在获取此代码之前被多次引用,因此任何在此之前,空引用会被捕获.我将不得不更仔细地查看调用事件处理函数.

这是一个解释具有错误行号的堆栈跟踪的线程:

堆栈跟踪上的行号错误

.net c# nullreferenceexception

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

Regex.Replace比使用String.Contains的条件语句慢得多

我有一个包含400个字符串的列表,所有字符串都以"_GONOGO"或"_ALLOC"结尾.当应用程序启动时,我需要从每个字符串中删除"_GONOGO"或"_ALLOC".

我试过这个:'string blah = Regex.Replace(string,"(_ GONOGO | _ALLOC)",""));'

但它比这样的简单条件语句慢得多:

if (string.Contains("_GONOGO"))
          // use Substring
else if (string.Contains("_ALLOC"))
          // use Substring w/different index
Run Code Online (Sandbox Code Playgroud)

我是正规表达的新手,所以我希望有人有更好的解决方案,或者我正在做一些可怕的错误.这不是什么大不了的事,但将这条4线条件变为一条简单的正则表达式线条会很不错.

c# regex string replace

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

如何在Wicket中用多个值替换属性的属性值?

我的class属性有两个CSS类值.HTML开头像这样:

<input type="button" wicket:id="rowButton" class="jelly-button greenGradient"/>
Run Code Online (Sandbox Code Playgroud)

我想动态地改变它:

<input type="button" wicket:id="rowButton" class="jelly-button redGradient"/>
Run Code Online (Sandbox Code Playgroud)

目前我这样做:

component.add(new SimpleAttributeModifier("class","jelly-button redGradient"));

Wicket最好的办法是什么?必须有比我上面所做的更"正确"的方式.

wicket

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

C#:在字符串属性设置器中调用方法问题

我有一个字符串属性,它定义了xml文件的文件名.当用户将此文件名输入到属性中时,我在设置'fileName = value'后立即调用parseXml()函数,以使用XML文件中的数据填充dataTable,以便在设计器中显示.出于某种原因,当我在属性设置器中调用此函数时,每次更改属性时,setter最终会每次调用两次,第二次是空字符串,这会导致错误.它为什么这样做?

public String FileName
{
    get { return fileName; }
    set 
    {
        fileName = value;
        parseXmlFile();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# methods setter properties file

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