小编Bry*_*ard的帖子

如何将十进制值舍入到最接近的0.05值?

有没有办法将十进制值四舍五入到.Net中最近的0.05值?

例如:

7.125 - > 7.15

6.66 - > 6.7

如果它现在可用,任何人都可以提供算法吗?

.net c# algorithm decimal rounding

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

MVP和演示者粒度

我们一直在使用MVP模式和Winforms取得了相当大的成功.但是,关于MVP的问题总是突然出现:

什么是一个很好的粒度主持人?

我的意思是:使用Winforms,细粒度通常适用于用户控件.这样,在设计更复杂的GUI时,可以轻松地重用用户控件并将其用作构建块.但是,与演示者具有相同(精细)粒度似乎是一个问题.

一方面,使用粗粒度的演示者会妨碍使用"插件"控件的能力,并且它违反了DRY原则:多个演示者通常需要实现相同的逻辑(例如,填充客户列表),由多个更复杂的控件使用.

另一方面,细粒度的演示者似乎限制了在不同情况下重用控件的能力.例如,编辑视图有时可能需要立即保存客户; 有时它需要将它与其他东西联系起来; 有时只需要验证它; 等等.它通常取决于更复杂的控制.但也有相当多的共享行为.

请注意,在这两种情况下,都可以实现1-presenter-1-view.什么被认为是"1视图"的变化.

使用MVP和Winforms通常被认为是演示者粒度的最佳实践?

  • 细粒度的演示者和通过选项或那种性质的东西可定制的行为?
  • 粗粒度的演示者和低演示者可重用性?
  • 别的什么?

免责声明:我们主要使用监督控制器,但我认为它也适用于被动视图.很抱歉这个问题也很长.

c# mvp winforms

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

C#架构指南与JavaEE

当我第一次从Java切换到C#时,我对C#的功能印象非常深刻.但是,在我看来,C#还没有以JavaEE的方式提供可靠的基础架构.

每当我尝试将C#的功能集成到可扩展或复杂的体系结构中时,它总是归结为:我如何扭曲它以便它可以成为MVC/MVP?例如,数据绑定给我带来了比节省时间更多的麻烦.

MSDN有许多与架构和模式相关的文档.但是,在大多数情况下,它们是" 教科书 ",并没有解决这些概念与.NET功能的关系.

JavaEE的EJB和Apache的Struts似乎都鼓励MVC架构.与大多数JavaEE一样,他们倾向于强调分离概念和可扩展性,使其成为大型项目的候选者.

Apache这样说:Struts就像"站在一个巨人的肩膀上".我也可以进入.NET的肩膀吗?

我能提出的最好的单线程是:

是否有大型项目中常用的C#架构整形框架?

我无法抗拒这个类比:我觉得.NET是Power Rangers而JavaEE是Megazord ......

免责声明:我通过Java销售给C#.我在C#领导了几个中小型项目,主要是使用MVP分离; 我只是想"填补空白".

.net c# architecture java-ee

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

MySQL ::连接器/净欧元符号

我的MySQL数据库可以很好地存储欧元符号(因为我已经使用本机MySQL客户端(HeidiSQL)进行了测试).但是使用MySQL .NET连接器,我的ASP.NET应用程序正在使用我无法插入或从数据库中读取它:我只得到一个?回归.可能的原因是什么?

mysql asp.net localization special-characters

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

为什么C#.net中的Expression的Body不能使用int,double或bool类型的属性?

我有一个功能:

private string GetPropertyName(Expression<Func<object, object>> f) {
    if ((f.Body as MemberExpression) != null) {
        return (f.Body as MemberExpression).Member.Name;
    }
    return "";
}
Run Code Online (Sandbox Code Playgroud)

它以这种方式使用:

string x1 = GetPropertyName(x => Property1);
string x2 = GetPropertyName(x => Property2);
string x3 = GetPropertyName(x => Property3);
Run Code Online (Sandbox Code Playgroud)

其中Property1是一个int,Property2是一个字符串,Property3是一个对象......

只有正确返回类型字符串和对象的Property2和Property3的名称,但Property1的f.Body作为MemberExpression为空...

为什么会这样,我们如何更改代码,以便函数正确返回属性的名称?

.net c# types expression properties

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

流利的nhibernate - 在一个表中存储和检索三个类

Noob问题.

我有这种情况,我有这些对象:

class Address
{      
   string Street;
   string City;
   ...
}

class User
{
   string UserID;
   Address BillingAddress;
   Address MailingAddress;
   ...
}
Run Code Online (Sandbox Code Playgroud)

使用(流畅的)nHibernate存储这些数据的正确方法是什么?我可以使用一个单独的地址表并创建一个引用,但它们是1:1的关系,所以我真的不想招致连接的开销.理想情况下,我会将其存储为单个平面记录.

所以,我的问题是,以这样一种方式存储"用户"类实例的正确方法是什么,它将其内容以及两个地址存储为单个记录?我的知识让我失去了如何以两种地址记录获得不同列名(例如BillingAddress_Street和MailingAddress_Street)的方式存储此信息,以及如何将记录读回用户实例.

c# fluent-nhibernate

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

多线程事件处理程序

这是我的单线程代码:

OnStart 
{
 FileSystemWatcher Watcher = new FileSystemWatcher();
 Watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite |NotifyFilters.CreationTime | NotifyFilters.DirectoryName;
 FileActionHandler ActionHandler = new FileActionHandler();
 Watcher.Created += new FileSystemEventHandler(ActionHandler.onCreate);
}

onCreate(object source,FileSystemEventArgs e)
{
 try
 {
 FileInfo file = new FileInfo (e.FullPath);
 String output = <FileName>File.Name + <FullPath>File.FullName + <FileSize>File.Length +  <CreationTime>File.CreationTime + <LastAccess>File.LastAccess + <LastWriteTime>File.LastWriteTime;
 LogToTextFile(output);
 }
 catch
 {
 LogToTextFile(ex.GetBaseException().Message);
 }
}

private void LogToTextFile(String s)
{
FileStream fileStream = new FileStream(@"c:\Log.txt", FileMode.Append, FileAccess.Write);
StreamWriter sw = new StreamWriter(fileStream);
sw.WriteLine(s);
sw.Flush();
sw.Close();
fileStream.Close(); …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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