小编m.e*_*son的帖子

为什么使用Convert.ToInt32而非转换?

今天在工作中出现了一个关于如何将对象转换为特定类型的问题(一int),我说要施展它:

int i = (int)object;
Run Code Online (Sandbox Code Playgroud)

一位同事说要用Convert.ToInt32().

int i = Convert.ToInt32(object)
Run Code Online (Sandbox Code Playgroud)

Convert.ToInt32()和直接对象之间的区别是什么?

.net c# casting

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

.OrderBy(DayOfWeek)将星期日视为本周结束

我按他们的System.DayOfWeek财产订购了许多物品.

DAYOFWEEK把星期日作为开始的一周,而我想它进行排序,因此出现在年底.它只是一个枚举,所以我无法修改它.但是我读过我可以创建一个自定义文化,但认为这可能是过度的.

List<TimeBand> orderedTimeBands = timeBands.OrderBy(x => x.DayName).ToList()

所以DayNameDayOfWeek,我希望orderedTimeBands从周一 - >周日订购.

有任何想法吗?

.net c# linq dayofweek

17
推荐指数
2
解决办法
4205
查看次数

SQL Server十六进制数据类型

我在SQL Server中寻找一种数据类型,它将数据存储为十六进制而不是int,但找不到类似的东西.当然有一个十六进制数据类型?

t-sql database sql-server

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

TransactionScope - 基础提供程序在EnlistTransaction上失败.MSDTC被中止

我们的团队遇到的问题表现为:

基础提供程序在EnlistTransaction上失败; 无法访问已处置的对象.对象名称:'Transaction'.

在此输入图像描述

一旦我们开始使用TransactionScope来处理我们的应用程序的事务,它似乎就出现了.

堆栈跟踪的顶部部分被捕获为:

在System.Data.EntityClient.EntityConnection.EnlistTransaction(事务事务)处于System.Data.Objects.ObjectContext.EnsureConnection(),位于Reconciliation.Models的System.Data.Objects.ObjectContext.ExecuteStoreCommand(String commandText,Object [] parameters).在EntityDbEnvironment.cs中的Reconciliation.Models.Legacy.EntityDbEnvironment.ExecuteOracleSql(String sql)中的BillLines.BillLines.Reconciliation.Interfaces.IBillLineEntities.ExecuteStoreCommand(String,Object []):第41行

同时更新MSDTC日志,我已使用此处说明进行了提取:

pid=7060       ;tid=7908       ;time=04/29/2013-16:38:30.269   ;seq=136        ;eventid=TRANSACTION_BEGUN                        ;tx_guid=60f6390c-7570-488a-97a9-2c3912c4ca3e     ;"TM Identifier='(null)                                            '" ;"transaction has begun, description :'<NULL>'"
pid=7060       ;tid=7908       ;time=04/29/2013-16:38:30.269   ;seq=137        ;eventid=RM_ENLISTED_IN_TRANSACTION               ;tx_guid=60f6390c-7570-488a-97a9-2c3912c4ca3e     ;"TM Identifier='(null)                                            '" ;"resource manager #1002 enlisted as transaction enlistment #1. RM guid = 'defc4277-47a6-4cd9-b092-93a668e2097b'"
pid=7060       ;tid=7908       ;time=04/29/2013-16:38:31.658   ;seq=138        ;eventid=RECEIVED_ABORT_REQUEST_FROM_BEGINNER     ;tx_guid=60f6390c-7570-488a-97a9-2c3912c4ca3e     ;"TM Identifier='(null)                                            '" ;"received request to abort the transaction from beginner"
pid=7060       ;tid=7908       ;time=04/29/2013-16:38:31.658   ;seq=139        ;eventid=TRANSACTION_ABORTING                     ;tx_guid=60f6390c-7570-488a-97a9-2c3912c4ca3e     ;"TM Identifier='(null)                                            '" ;"transaction …
Run Code Online (Sandbox Code Playgroud)

c# msdtc entity-framework transactionscope oracle10g

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

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

字符串比较==只能工作,因为字符串是不可变的吗?

在比较两个字符串及其变量时,我有一个想法:

string str1 = "foofoo";
string strFoo = "foo";
string str2 = strFoo + strFoo;

// Even thought str1 and str2 reference 2 different
//objects the following assertion is true.

Debug.Assert(str1 == str2);
Run Code Online (Sandbox Code Playgroud)

这纯粹是因为.NET运行时识别字符串的值是相同的,因为字符串是不可变的使得引用str2等于str1

所以,当我们这样做str1 == str2,我们其实比较参考,并不值?我原本以为这是语法糖的产物,但我是不正确的?

我写的任何不准确之处?

.net c# string

13
推荐指数
4
解决办法
1402
查看次数

RDLC交换机构造 - 还有其他吗?

我在报告中有以下表达式:

= Switch( Fields!RATE_CODE.Value = "First", " £/Week",
          Fields!RATE_CODE.Value = "Second", " £/Day")
Run Code Online (Sandbox Code Playgroud)

我已经搜索了所有但无法找到添加elsedefault表达式的方法.这个结构上似乎没有任何文档.

这可能吗?

reporting expression rdlc visual-studio-2010

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

使用Calibri字体连接防止LocalReport.Render

我在RDLC报告中以PDF格式打印空字符时遇到问题.它只会影响我理解为字母组合的字体连字,例如:

  • TI
  • FT
  • 科幻
  • TT

我的研究表明这些字符组合被组合成一个字形,我在打印时看到它是一个空白区域.示例剪报:

在PDF上:

在此输入图像描述

在此输入图像描述

印刷:

在此输入图像描述

在此输入图像描述

因此症状是:

  • PDF在屏幕上显示正常
  • 打印(物理或使用XPS编写器)时,所有连字都显示为空格

到目前为止,我已将其缩小为特定字体(Calibri)和特定服务器(Windows Server 2003 R2).PDF嵌入了字体:

在此输入图像描述

为了解决这个问题,我很满意:

  • 阻止LocalReport.Render组合连字
  • 启用S​​erver 2003将字体视为我的Windows 7计算机

我不确定如何/在哪里开始比较字体环境,因此非常感谢想法和指针.

更新:

感谢下面的答案,我检查了两台机器上的charmaps,但它们看起来完全相同:

服务器(问题所在):

在此输入图像描述

本地(没有问题):

在此输入图像描述

这也提醒我,我通过复制字体文件并直接安装它来安装字体.两个版本都是5.72,数字签名,TrueType轮廓,但服务器显示OpenType Font本地显示OpenType Layout(可能只是不同的操作系统显示).

一个有趣的观点是,如果我在本地使用Calibri Regular 48,我会看到结扎:

在此输入图像描述

而服务器不使用它:

在此输入图像描述

此外,两个PDF都在同一台机器上打印,但它只是服务器上生成的PDF显示问题,因此我认为打印机驱动程序不是问题?

c# pdf fonts rdlc ligature

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

从Single到Decimal的显式转换导致不同的位表示

如果我将单个 s转换为十进制 d,我注意到它的位表示与直接创建的小数表示不同.

例如:

Single s = 0.01f;
Decimal d = 0.01m;

int[] bitsSingle = Decimal.GetBits((decimal)s)
int[] bitsDecimal = Decimal.GetBits(d)
Run Code Online (Sandbox Code Playgroud)

返回(为简洁起见,删除了中间元素):

bitsSingle:
[0] = 10
[3] = 196608

bitsDecimal:
[0] = 1
[3] = 131072
Run Code Online (Sandbox Code Playgroud)

这两个都是十进制数,两者(看起来)都准确地表示0.01:

在此输入图像描述

看看这个规范除了可能之外没有任何亮点:

§4.1.7与float和double数据类型相反,0.1等小数小数可以用十进制表示精确表示.

这表明该以某种方式受到不能够在转换前准确地表示0.01,因此:

  • 转换完成后为什么这不准确?
  • 为什么我们似乎有两种方法在同一数据类型中表示0.01?

c# floating-point types decimal primitive-types

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

EmailAddressAttribute错误地将法语电子邮件地址归类为无效

我正在使用EmailAddressAttribute在我的模型上使用.

问题是当我使用(完全有效)的电子邮件地址时

óscar@yahoo.com
Run Code Online (Sandbox Code Playgroud)

它说这是无效的.

模型:

public class ForgotPasswordViewModel
{
    [Required]
    [EmailAddress]
    [Display(Name = "Email")]
    public string Email { get; set; }

    public CmsContentPagesModel PageCmsContent { get; set; }

    public CmsContentPagesModel PageCmsContentInfoIcon { get; set; }
    public CmsContentPagesModel PageCmsContentRightPanel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是属性的问题,还是以某种方式必须指定法国电子邮件是否可以?

呈现的输入框:

<div class="col-md-5">
     <input class="form-control" data-val="true" data-val-email="The Email field is not a valid e-mail address." data-val-required="The Email field is required." id="Email" name="Email" type="text" value="" />
     <span class="field-validation-valid text-danger" data-valmsg-for="Email" data-valmsg-replace="true"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

我还从客户端验证中提取了正则表达式,以下行返回false

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( 'óscar@yahoo.com' …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc jquery email-validation unobtrusive-validation

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