我有一个包装类,它封装了一条需要作为字节数组传输的信息。
这样,该类将必要的标头(带有 DATA_LENGTH 或 MESSAGE_TYPE 之类的字段)封装到相应的字节位置。为此,我想在常量中定义位置和长度,例如:
HEADER_DATA_LENGTH_IX = 0;
HEADER_DATA_LENGTH_LENGTH = 2;
Run Code Online (Sandbox Code Playgroud)
这意味着 DATA_LENGTH 从 0 开始并占用两个字节。
但到目前为止,我正在努力使它们成为常量或静态只读字段。常量不能被保护,因此如果使用它们,我将无法派生新类并更改常量,另一方面,我可能会在派生类中声明新常量并使用它们。
你的方法是什么?
从历史上看,除了最基本的应用程序之外,我完全反对使用ORMS.
我的理由一直是,它是一个非常漏洞的抽象...主要是因为SQL提供了一种非常强大的方法来从关系源中检索数据,这通常会被ORM搞砸,这样你就会失去很多性能来获得没有关系后端的外观.
我一直以为DATA应该始终保存在数据库中,而不是吃掉那些无法扩展的应用程序内存.此外,对通用性能的影响是有害的.例如,如果我需要数据库的所有客户端的名称和地址,SQL在一个查询中为我提供了一种简单的方法来获取它.使用ORM我需要获取所有客户端,然后是每个名称和地址,即使它是懒惰加载它也会花费更多时间.
这就是我的想法,但上面的任何改变了吗?我看到很多ORMS,比如Entity Framework,NHibernate等.最近他们似乎有很多人气......他们值得吗?他们解决了我上面描述的问题吗?
我有一个标签,其内容通过 while 循环显示。当我在标签中显示文本时,它会正确显示。有时几分钟,相同的文本显示在相同的标签中,并且控件中的文本大小发生变化。
这是代码:
//Form_Load :
Thread t = new Thread(displaySentences);
t.Start();
//display sentences:
void displaySentences()
{
while(true)
{
if(i>=5)
i=0;
label4.Text = textarray[i];
i++;
}
}
Run Code Online (Sandbox Code Playgroud)
第一次迭代(i=0)中的文本大小与第二次迭代中标签控件中的文本大小不同。
我有一个需要由多个线程处理的TObjectList.由于内部TObjectList继承自TList,TList将其内部实现为数组,我想知道:
只要我们访问不同的索引,从不同的线程访问数组是否是线程安全的?
例如,有一个名为myObjectList的TObjectList:
start = 0; end = myObjectList.Count div 2;
线程1:
for i := 0 to end do
Process(myObjectList[i]);
Run Code Online (Sandbox Code Playgroud)
线程2:
for i := end + 1 to myObjectList.Count - 1 do
Process(myObjectList[i]);
Run Code Online (Sandbox Code Playgroud) 我正在尝试确定Kotlin界面中的某个功能,该功能会根据一个Give键从配置中读取一个值。这两个选择是
/**
* Reads a configuration value for the specified key.
* @param key The key to the configuration value to retrieve
* @return The configuration value if the key is present, exception otherwise
*/
fun readValue(key: String): String
Run Code Online (Sandbox Code Playgroud)
/**
* Reads a configuration value for the specified key.
* @param key The key to the configuration value to retrieve
* @return The configuration value if the key is present, null otherwise
*/
fun readValue(key: String): String?
Run Code Online (Sandbox Code Playgroud)
如图所示,主要区别在于引发异常或返回空值。
考虑到我在Java和C#中的背景,我很自然地编写第二种形式,并要求调用者在访问该值之前检查null,但是我不确定这是否适用于Kotlin或是否有一般偏好以避免返回null值尽可能。
我有一个应用程序可能会收到来自另一台计算机的数据的网络请求.可以将数据分组为几个类别,以便可以对其进行过滤.
在这种情况下,可能会发生两件事:
基本上是Google UI与"您的应用UI"之间的争论.第二个选项太简单了,但它限制了用户准确决定他想要发送的数据的能力,第二个选项为用户带来了可能不需要的复杂性.
你有什么选择更好?
c# ×3
.net ×1
delphi ×1
immutability ×1
kotlin ×1
licensing ×1
null ×1
orm ×1
performance ×1
vb.net ×1