让我们说一下,C#允许最纯粹意义上的多个返回值,我们希望看到类似的东西:
string sender = message.GetSender();
string receiver = message.GetReceiver();
Run Code Online (Sandbox Code Playgroud)
压缩到:
string sender, receiver = message.GetParticipants();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,在实际调用方法之前,我不必理解方法的返回值.也许我依靠Intellisense来告诉我我正在处理什么样的返回值,或者我正在寻找一种从我不熟悉的类中返回我想要的方法.
同样,我们目前在C#中有类似的东西:
string receiver;
string sender = message.GetParticipants(out receiver);
Run Code Online (Sandbox Code Playgroud)
GetParticipants的参数是out字符串参数.但是,这与上面的有点不同,因为这意味着我必须先抢占,或者至少返回并编写创建变量以保存out参数结果的代码.这有点违反直觉.
我的问题是,当前C#中是否存在任何语法糖,它允许开发人员在与方法调用相同的行中进行此声明?我认为它会使开发变得更加流畅,并且如果我做了类似的事情,也会使代码更具可读性:
string sender = message.GetParicipants(out string receiver);
Run Code Online (Sandbox Code Playgroud)
表明接收器是在现场宣布和分配的.
C#struct是否是线程安全的?
例如,如果有:
struct Data
{
int _number;
public int Number { get { return _number; } set { _number = value; } }
public Data(int number) { _number = number; }
}
Run Code Online (Sandbox Code Playgroud)
在另一种类型:
class DadData
{
public Data TheData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
是属性名为TheData,线程安全吗?
我很困惑.我刚买了一台新的开发机器,perl似乎没有为打印命令输出任何东西.
#!/usr/bin/perl
use warnings;
use strict;
print "A";
print STDOUT "B";
print STDERR "C";
open FH, ">", "testprint';
print FH "D";
close FH;
Run Code Online (Sandbox Code Playgroud)
在控制台中不生成任何内容,并且testprint成为1-bye(空)文件.
即便这样也没有产生:
perl -e "print 'a';"
Run Code Online (Sandbox Code Playgroud)
这恰好发生在我的机器上的perl二进制文件中.我很困惑在哪里开始调试这个问题.有任何想法吗?
编辑:
perl -v
This is perl, v5.8.8 built for x86_64-linx-thread-multi
Run Code Online (Sandbox Code Playgroud)
和
which perl
/usr/bin/perl
Run Code Online (Sandbox Code Playgroud) 我必须用Java开始一个中型项目,但我不是一般的ORM的粉丝所以问题是:我是否应该考虑ORM设计项目(供以后使用)?
该RDBMS是Oracle 10g和查询将非常耦合到甲骨文语法/功能(即文本,挖掘,CONNECT BY,等...).
非常感谢.
我正在使用一个应用程序,我能够使C#脚本在这个环境中运行.我可以将任何类型的DLL导入此环境.我的问题是我想在这些脚本之间启用通信.由于环境受到控制而且我无法访问应用程序的源代码,因此我不知道如何执行此操作.
我试过的事情:
文件I/O:只需编写我希望每个读取.txt文件并让另一个读取它的消息.问题是我需要这个脚本运行得非常快,而且占用了太多时间.
nServiceBus:我试过这个,但我无法让它在我正在处理的环境中工作.我不是说不能做到,只是因为我无法完成它.
有谁知道一个简单的方法来做到这一点,这也很快?
Visio 2003使用UML 1.4,这意味着UML 2.0中的一些构造型根本不存在,并且它们需要通过徒手绘图建模(我可能也使用Photoshop).有没有人知道微软或插件的更新,在Visio 2003中包含UML 2.0(完整 - 不仅仅是类图)?
我找到了这个包: http://www.sdl.sandrila.co.uk/但是通过他们的"示例"截图判断,我将远离.如果他们不知道如何使用UML,我会感到惊讶,如果他们能够正确实现它;)
我知道序列化是什么,但对我来说,这是一个没有描述它意味着什么的术语.
为什么我们调用序列化序列化?将对象转换为原始数据(以及为此扩充/反序列化)有什么用于与"串行"一词相关的任何内容?谁创造了这个术语,为什么?
我很快就会开始研究一个项目(从规范中)让我想起StackOverflow.基本上,它是一个具有用户控制内容的Web应用程序.
让我在脑海里转转的一个功能是版本控制.在StackOverflow上,每个问题和答案都可以有多个修订版.当你只有一种类型的对象(在这种情况下,它的文本)时,这很容易实现.
所以,对于我的简单页面,我已经设置好了.
当我认为某些需要在版本控制下的对象具有关系时,问题就出现了.为了提供一个具体的例子,让我选择一个随机的analagous域:
让我们说我正在实施一个类似Wiki的网站来跟踪书籍/作者信息.该网站的主要焦点是创建和更新"作者"页面,这些页面作为文本非常简单(如上所述).但是,让我们在作者和书籍之间添加一对多的关联(换句话说,书籍将是单独的对象,显然一个人可以创作许多书籍).每本书都有一个从作者页面到关于该书的信息页面的链接.
对于用户来说,描述作者的基于文本的"摘要"与该作者及其作品之间的链接之间几乎没有区别.因此,我们需要为作者页面,书页以及作者和书籍之间的关联实现"修订"/编辑功能.换句话说,用户应该能够编辑,查看历史记录和回滚作者页面,书页以及两者之间的关联.
当这种关系变成多对多时,这变得更加复杂,多个作者可能被列为对书籍的贡献.
我有很多解决方案,但没有一个像我想的那样干净(并且至少涉及一些重复的代码/冗余数据存储),虽然我确实看到了这里的共性,但我觉得我真的无法提取它,特别是在数据库级别.我不想偏袒给出的答案,所以我不打算立刻给他们.
那么,您将如何在数据库级别设计此系统?我在这里寻找表格规格,并且可能描述了如何使用它们,如果不是立即显而易见的话.对于那些可能相关的答案,我将使用ASP.NET和Linq-to-SQL(我很熟悉LTS中的多对多)或实体框架.
编辑:为了澄清,我理解基本的数据库设计,规范化,多对多映射表等.我正在寻找一个干净的解决方案,以满足这种特定情况.
编辑2:我正在寻找一个可推广的解决方案,因为系统中可能有更多的子对象而不仅仅是书籍.作者可能与其他作者,杂志,事件等等有关.如果我为每个作者单独实施历史记录,我觉得我正在重复很多工作.
默认情况下,当我有一串文本将通过消息框,标签等输出到屏幕时,我在代码中使用字符串常量.我这样做的主要原因是我不希望这些字符串在运行时更改通过这种方式,没有人真正接触到它
我的问题是:
似乎从内存的角度来看,这种方法是创建一个对象,其生命周期将由GB决定,而字符串文字似乎更有效并且将更快地处理.我知道这是一个新手问题,但是当使用文字超过常量或者在这种情况下应该使用常量时,是否有一个好处(无论多么微小).
我知道它不会在我的应用程序中产生任何明显的差异,但我正在努力提高自己作为开发人员并建立标准,我保持合理的时间.:O)
我有一个带字母的图像,字母有黑色和蓝色两种颜色,我想从图像中读取蓝色字母.
任何人都可以建议我在C#中执行此操作的方法.我正在研究GDI +,但仍然没有得到任何逻辑来开发这个程序..
我试过OCR它,但普通OCR的问题是他们不认识色差.
我只想读蓝字......
任何指导都非常感谢.
我很欣赏Eclipse的灵活结构.我真的想知道用什么编程语言来编写这样的软件,以及使用哪些设计概念来使它变得如此灵活.
这有点荒谬(我想).mono希望成为.NET的替代品,为什么我不能用mono本身运行monodevelop?为什么我需要.NET呢?
你可以在这个链接中看到我在说什么:http: //monodevelop.com/Download 只需选择MonoDevelop 2.2 Beta 1然后选择windows,你会看到:-)
谢谢 :-)
c# ×4
.net ×2
asp.net ×1
coding-style ×1
concurrency ×1
eclipse ×1
history ×1
java ×1
jqgrid ×1
linq-to-sql ×1
monodevelop ×1
orm ×1
parameters ×1
perl ×1
printing ×1
servicebus ×1
string ×1
struct ×1
uml ×1
visio ×1
windows ×1