是否存在某种开源项目/编码器的在线市场?我正在寻找一种在实际开始项目之前找到合作伙伴的方法,而不是单独启动项目并在我发现没有人关心它时让它死掉.
格式化C#代码的普遍接受的方式似乎如下:
namespace SomeNamespace
{
namespace SomeSubNamespace
{
class SomeClass
{
void SomeFunction()
{
using (var someFile = new StreamWriter(somePath))
{
try
{
lock(someCriticalSection)
{
using (var someDisposableThing1 = new DisposableThing())
{
DoSomething();
using (var someDisposableThing2 = new DisposableThing())
{
lock(someOtherCriticalSection)
{
DoSomethingMore();
}
}
}
}
}
catch(Exception e)
{
Log(e);
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会浪费大量的水平和垂直屏幕空间.我肯定不是第一个注意到的人.我的问题是:你是否与它一起生活,或者你是否开发了不同的格式化风格以避免过多的空白区域?
PS:请注意,我甚至没有使用单个if语句!
这是我尝试在程序中打开OpenFileDialog时收到的错误消息:
"在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式.确保Main函数上标记了STAThreadAttribute.仅当调试器附加到进程时才会引发此异常."
此错误消息的问题是我的Main方法DOES附加了STAThread属性.我不知道如何处理这个问题.如果它已经存在,我怎么能添加一些东西.加倍它并不是一个好选择,我尝试删除它,构建应用程序,添加它并再次构建它没有成功.我只是不明白.
private void btnOldFind_Click(object sender, EventArgs e)
{
openFileDialog1.Multiselect = false;
openFileDialog1.FileName = "";
openFileDialog1.ShowHelp = false;
openFileDialog1.AutoUpgradeEnabled = true;
openFileDialog1.InitialDirectory = @"C:\";
openFileDialog1.Filter = "Microsoft Installer (*.msi)|*.msi|All Files (*.*)|*.* ";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBoxOldInstallation.Text = openFileDialog1.FileName;
}
}
Run Code Online (Sandbox Code Playgroud)
主要方法是:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
Run Code Online (Sandbox Code Playgroud)
并且没有明确地进行线程化.说实话,这是一个非常基本的计划.
EDIT2 :: …
我的目标是[半]自动将文本分配到不同的类别.每个类别都有一组用户定义的类别和一组文本.理想的算法应该能够从人类定义的分类中学习,然后自动对新文本进行分类.任何人都可以建议这样的算法,也许是实现ше的.NET库吗?
是否有可能搜索链接到特定URL或甚至更好的域名的推文?
已经有了这样的服务,但我无法通过twitter-Api弄清楚如何自己做...
似乎不可能只收集包含URL的所有推文,展开URL,将它们全部保存,然后查找某些URL.
基本上我有一个主表单,在加载时打开一个子表单登录用户.当他们取消或关闭此登录表单时,我需要关闭整个应用程序.
但似乎有几种不同的方法可以关闭C#程序:
Application.Exit();
Application.ExitThread();
Environment.Exit(1);
Process.GetCurrentProcess().Kill();
SFTPClient.LDAPLoggedIn = false; Close();
编辑:对不起,如果这个不清楚:它在控制器对象中设置一个属性,以指示登录失败.打开子表单后,我会在父表单中检查此属性以查看程序是否应该继续.它基本上将退出计划的责任转移到了父母,没有例外.
6: throw new Exception("User closed the form");
我可以看到有两种处理方式:
这两个中的任何一个都被视为更好的做法
每种方法似乎对我的程序都有相同的影响,但它们实际上是如何比较的?
更新: 谢谢你的答案.对于那些在未来和好奇的人中搜索这个问题的人来说,这最终是我的解决方案:
private void FormMain_Load(object sender, EventArgs e)
{
if (new FormLogin().ShowDialog(this) == DialogResult.Cancel) Close();
}
Run Code Online (Sandbox Code Playgroud)
和:
private void buttonCancel_Click(object sender, EventArgs e)
{
Close();
}
Run Code Online (Sandbox Code Playgroud)
我发现当通过单击"X"关闭表单时,DialogResult会自动设置为"取消",所以我需要做的就是 Close()
所以我试图通过创建一个博客引擎来学习.我正在使用Hibernate和MySQL.这是我的"Post"类的hibernate映射:
<hibernate-mapping package="com.enw.blog">
<class name="Post" table="POST">
<id name="id" column="POST_ID">
<generator class="native"/>
</id>
<property name="title"/>
<property name="text"/>
<property name="date" type="timestamp" column="POST_DATE"/>
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
当然,帖子可能很长.默认情况下,这会设置一个表格,表示为VARCHAR(255).我该如何改变?
我也很欣赏指向文档中正确位置的指针,我似乎无法有效地浏览它们.
我有很多桌子:客户,潜在客户,朋友......
他们都有一些笔记.
问题1:我是否应该与所有父表共享一个Notes表.
或者
我应该有NotesCustomer,NotesProspects,NotesFriends表吗?
问题2:
如果最好的解决方案是第一个,那么这个通用Notes表应该有一个FK到父表但是也是父表的类型?
我正在使用EntityFramework,但这个问题也是一般我猜...
谢谢乔恩
在关于3.7版中引入的预写日志功能的SQLite文档中,有一些评论让我感到困惑.
链接页面说"只要应用程序愿意牺牲掉电后的耐用性",就不需要"将内容同步到磁盘".然后下面几段,它说"检查点确实需要同步操作,以避免在断电或硬重启后数据库损坏的可能性".
如果我使用WAL,那么我的数据库是否存在更大的电力损失腐败风险?
有很多线程以混乱的方式开始Math.Round工作.在大多数情况下,通过将人们引入MidpointRounding参数并且大多数人都期待的方式来回答这些问题MidpointRounding.AwayFromZero.关于AwayFromZero实施的实际算法,我还有一个问题.
给出以下数字(许多计算的结果): 13.398749999999999999999999999M
我们的用户希望看到Excel给他们的结果相同13.39875.由于他们目前使用Math.Round(num,4,MidpointRounding.AwayFromZero)将该数字四舍五入为4,因此结果与他们期望的结果相差0.0001.据推测,其原因是算法只是查看第五个数字(4),然后相应地进行舍入.如果你要在最后9开始四舍五入,真正的数学答案实际上会给你与excel相同的数字.
所以问题是......有没有办法模仿这种行为而不是当前行为?
我写了一个我们可以在此期间使用的递归函数.但在我们投入生产之前,我想看看SO对这个问题的看法:-)
private decimal Round(decimal num, int precision)
{
return Round(num, precision, 28);
}
private decimal Round(decimal num, int precision, int fullPrecision)
{
if (precision >= fullPrecision) return Math.Round(num, precision);
return Round(Math.Round(num, fullPrecision), precision, --fullPrecision);
}
Run Code Online (Sandbox Code Playgroud)
编辑:为了清楚起见,我应该在原帖中更清楚.这里要求舍入方法的位置是我报告"舍入错误"的业务分析师和用户所呈现的内容.尽管多次被告知这不是不正确的,只是与他们期望的不同......这份报告不断涌现.所以我只是在收集数据,尽可能多地收集有关此主题的信息,以便向用户.
在这种情况下,似乎用于生成这些平均价格(我们必须匹配)的任何其他系统使用不同的级别精度(数据库中为10,而excel似乎默认为15或其他).鉴于每个人都有不同的精确度,我陷入中间的问题是移动到较低的精度,一些奇怪的舍入规则(如上所述),或者只是有不同于用户期望的结果.
c# ×4
.net ×1
algorithm ×1
corruption ×1
database ×1
formatting ×1
hibernate ×1
indentation ×1
java ×1
math ×1
mysql ×1
open-source ×1
rounding ×1
social ×1
sql ×1
sqlite ×1
text-mining ×1
twitter ×1
winforms ×1