小编Bre*_*ogt的帖子

声明和实例化ac#array究竟意味着什么?

我正在阅读c#数组,所以我的问题最初是在数组上.

声明数组实际意味着什么?我知道你声明了一个类型为array的变量.当我有以下内容时,实际发生了什么?

int[] values;
Run Code Online (Sandbox Code Playgroud)

声明时它是否在记忆中?如果不是那么它在哪里?阵列实际上是在这里创建的吗?

然后我去实例化一个数组并用一些值初始化它,如:

int[] values = new int[] { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

这实际上是现在创建阵列吗?我已阅读,创建数组在声明时,别人说自己被实例化时创建数组.我想让我的术语正确.

整数变量也是如此.如果我有:

int value;
Run Code Online (Sandbox Code Playgroud)

int value = 1;
Run Code Online (Sandbox Code Playgroud)

什么时候创建int?什么时候加入内存?

抱歉愚蠢的问题.我理解这个概念,但想知道阵列的幕后technicallity.

.net c# reference-type indirection

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

流利的验证不适用于长度

我试图让Fluent验证在我的客户端验证上正常工作.我正在使用ASP.NET MVC 3.

我有一个必需的标题,它必须在1到100个字符之间.因此,当我输入标题时,会显示一条错误消息,该消息不在我的规则集中.这是我的规则集:

RuleFor(x => x.Title)
   .NotEmpty()
   .WithMessage("Title is required")
   .Length(1, 100)
   .WithMessage("Title must be less than or equal to 100 characters");
Run Code Online (Sandbox Code Playgroud)

以下是显示的错误消息:

Please enter a value less than or equal to 100
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么.这是我的global.asax:

// FluentValidation
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(
   new FluentValidationModelValidatorProvider(new AttributedValidatorFactory()));

ModelMetadataProviders.Current = new FluentValidationModelMetadataProvider(
   new AttributedValidatorFactory());
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc fluentvalidation asp.net-mvc-3

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

创建通用检索方法以返回1条记录

我正在编写代码示例,我只是想听听他们做事的方式的一些意见.他们使用普通的旧ADO.NET.它们有一个名为Read的通用函数,可以带回1条记录.这是代码:

public static T Read<T>(string storedProcedure, Func<IDataReader, T> make, object[] parms = null)
{
   using (SqlConnection connection = new SqlConnection())
   {
      connection.ConnectionString = connectionString;

      using (SqlCommand command = new SqlCommand())
      {
         command.Connection = connection;
         command.CommandType = CommandType.StoredProcedure;
         command.CommandText = storedProcedure;
         command.SetParameters(parms);

         connection.Open();

         T t = default(T);
         var reader = command.ExecuteReader();
         if (reader.Read())
            t = make(reader);

         return t;
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么:

  • 他们使用Func<IDataReader, T> make方法签名的一部分?这样做有效吗?有没有更好的方法/最佳做法来做到这一点?
  • 我不明白T t = default(T);?这样做有效吗?有没有更好的方法/最佳做法来做到这一点?
  • 怎么t = make(reader);办?这样做有效吗?有没有更好的方法/最佳做法来做到这一点?

调用函数看起来像这样:

public Customer …
Run Code Online (Sandbox Code Playgroud)

.net c# ado.net c#-4.0

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

NUnit测试中的实际值和期望值格式十进制扩展名不一样

我写了以下扩展方法:

public static class DecimalExtensions
{
   public static string FormatCurrency(this decimal instance)
   {
      return string.Format("{0:c}", instance);
   }
}
Run Code Online (Sandbox Code Playgroud)

NUnit测试:

[TestFixture]
public class DecimalExtensionsTests
{
   [Test]
   public void Format_should_return_formatted_decimal_string()
   {
      // Arrange
      decimal amount = 1000;

      // Act
      string actual = amount.FormatCurrency();

      // Assert
      Assert.AreEqual("R 1 000,00", actual);
   }
}
Run Code Online (Sandbox Code Playgroud)

我的测试失败了,我不知道为什么.我得到的错误如下:

String lengths are both 10. Strings differ at index 3.
  Expected: "R 1 000,00"
  But was:  "R 1 000,00"
  --------------^
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing

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

如何使用jQuery MaskedInput 1.3正确设置小数掩码

我正在使用jQuery 1.7.1jQuery maskedinput 1.3在我的ASP.NET MVC 3应用程序中.

如何设置一个接受十进制值的掩码项(SQL十进制数10,2).我有什么作品,但它看起来很可怕:

$('#AnnualIncome').mask('9?9999999.99', { placeholder: ' ' });
Run Code Online (Sandbox Code Playgroud)

当我转到我的页面并单击文本框时,会有一个数字值空间.进一步小数部分.这看起来很糟糕,似乎效果不佳.我将在小数的左半部分输入9,然后在小数的右边部分输入99.因此,如果文本框仍然具有焦点,那么它看起来像这样:

9___________.99
Run Code Online (Sandbox Code Playgroud)

我不希望它像这样,我希望用户能够随时输入小数,我想要类似的东西:

9.99
Run Code Online (Sandbox Code Playgroud)

此外,如果文本框失去焦点,那么它现在看起来像:

999
Run Code Online (Sandbox Code Playgroud)

我需要它来显示:

9.99
Run Code Online (Sandbox Code Playgroud)

有人可以帮我正确设置吗?

javascript asp.net-mvc jquery jquery-plugins asp.net-mvc-3

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

实体框架代码首先在类布尔值和列整数之间进行转换

我正在使用Entity Framework 5 code first. 我的表有一个名为的列Active,它的数据类型是类型int。存储在 Active 中的值为01null

我有一个类需要映射到这个表。

public class CommandExecutionServer : IEntity
{
     public int Id { get; set; }

     public bool? IsActive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的配置文件。我试图将我的类中的布尔属性映射到数据库中的整数字段。

class CommandExecutionServerConfiguration : EntityTypeConfiguration<CommandExecutionServer>
{
     internal CommandExecutionServerConfiguration()
     {
          this.ToTable("tblCommandExecutionServers");
          this.Property(x => x.IsActive).HasColumnName("Active").HasColumnType("bit");
     }
}
Run Code Online (Sandbox Code Playgroud)

这不是很好。我得到的错误是:

The 'IsActive' property on 'CommandExecutionServer' could not be set to a 'Int32' value. You must set this property to a non-null value …
Run Code Online (Sandbox Code Playgroud)

ado.net entity-framework entity-framework-4 entity-framework-4.1 entity-framework-5

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

存储库模式是否仅用于实体框架?

我已经使用Entity Frameworkrepository pattern一段时间了.

前几天我被问到不使用实体框架编写数据层,只是简单的旧版ADO.NET.我想知道最好的办法是什么?我是否还使用普通的旧ADO.NET为我的CRUD操作使用存储库模式?

如果我去Codeplex搜索存储库模式,那么99.9%的所有示例项目都使用Entity Framework.如果我使用普通的ADO.NET和存储过程,是否需要使用不同的模式?

.net c# ado.net entity-framework entity-framework-5

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

响应式网页设计问题

我一直在阅读响应式网页设计(RWD)并尝试围绕这个概念.

响应式网页设计真的是我们应该用于移动开发的方式吗?我喜欢有一个网站应该适用于台式机,笔记本电脑,平板电脑和手机等许多不同设备的想法.

在桌面上我有一个宽屏幕,所以我的网站就像它的设计一样.它有一个列,其中包含我的大部分主要内容以及左侧或右侧较宽的列(取决于您在网站上的位置)以进行导航.RWD如何确定哪些列堆叠在哪些列上?它是从屏幕左侧开始,首先加载左列的内容然后加载右列的内容?是否可以删除列以使其不显示在某些设备上?RWD可以处理这样的东西吗?设备越宽,您想要显示的内容越多,您想要显示的必要内容就越少.

RWD如何处理更便宜的手机?那些不是真正智能手机的手机?如果手机无法处理RWD会发生什么呢?

如何在没有宽屏幕的手机上显示20列数据网格?和分页?

像这样的东西,我不知道RWD是否适合我?我喜欢整洁的网站,而不是把所有东西都压扁,只是为了让内容进入手机屏幕的边界.

除了Twitter bootstrap,还要考虑其他任何体面的RWD框架吗?我听说过一些体面的框架.

html javascript css html5 responsive-design

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

在数据库中存储 GPS 坐标的最佳方式

关于 GPS 坐标应以何种格式存储在数据库中,然后在请求时将其转换为所需格式,是否有最佳实践?

我有以下几点:

S33° 56' 51.972" E18° 51' 25.83"
Run Code Online (Sandbox Code Playgroud)

像这样存储在数据库中还是以其他格式存储好?我只是想知道因为它包含度数符号和分秒符号。

以上是否需要保存为一个NVARCHAR(50)或就VARCHAR(50)足够了?

我正在使用,SQL Server但这应该适用于所有形式的数据库。

c# sql database sql-server c#-4.0

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

如何在ASP.NET MVC模型中为POST保存选定的DropDownList值?

我的模型中有一个属性,如下所示:

 public IList<SelectListItem> AllCards { get; set; }
Run Code Online (Sandbox Code Playgroud)

SelectListItem控制器使用数据库中的数据来填充属性.

另外,在我的视图中@Html.DropDownListFor(m=>m.AllCards,Model.AllCards,"--Select--").在POST视图期间出现问题.也就是说,onSubmit我Model.AllCards是空的,尽管在下拉列表中选择了一个值.我尝试将新属性添加到模型中,如下所示:

public SelectListItem SelectedCard
Run Code Online (Sandbox Code Playgroud)

然后像这样改变视图:

@Html.DropDownListFor(m=>m.AllCards,Model.SelectedCard,"--Select--")
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误,说转换不可能,就像那样.

我应该怎么做才能捕获我的dropdownlist值,以便在调用视图的POST版本后它可以在模型内部?谢谢

PS我知道有十个类似的问题,但没有一个有用.

asp.net asp.net-mvc razor asp.net-mvc-3 asp.net-mvc-4

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