我正在阅读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.
我试图让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) 我正在编写代码示例,我只是想听听他们做事的方式的一些意见.他们使用普通的旧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) 我写了以下扩展方法:
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) 我正在使用jQuery 1.7.1并jQuery 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)
有人可以帮我正确设置吗?
我正在使用Entity Framework 5 code first. 我的表有一个名为的列Active,它的数据类型是类型int。存储在 Active 中的值为0、1和null。
我有一个类需要映射到这个表。
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
我已经使用Entity Framework了repository pattern一段时间了.
前几天我被问到不使用实体框架编写数据层,只是简单的旧版ADO.NET.我想知道最好的办法是什么?我是否还使用普通的旧ADO.NET为我的CRUD操作使用存储库模式?
如果我去Codeplex搜索存储库模式,那么99.9%的所有示例项目都使用Entity Framework.如果我使用普通的ADO.NET和存储过程,是否需要使用不同的模式?
我一直在阅读响应式网页设计(RWD)并尝试围绕这个概念.
响应式网页设计真的是我们应该用于移动开发的方式吗?我喜欢有一个网站应该适用于台式机,笔记本电脑,平板电脑和手机等许多不同设备的想法.
在桌面上我有一个宽屏幕,所以我的网站就像它的设计一样.它有一个列,其中包含我的大部分主要内容以及左侧或右侧较宽的列(取决于您在网站上的位置)以进行导航.RWD如何确定哪些列堆叠在哪些列上?它是从屏幕左侧开始,首先加载左列的内容然后加载右列的内容?是否可以删除列以使其不显示在某些设备上?RWD可以处理这样的东西吗?设备越宽,您想要显示的内容越多,您想要显示的必要内容就越少.
RWD如何处理更便宜的手机?那些不是真正智能手机的手机?如果手机无法处理RWD会发生什么呢?
如何在没有宽屏幕的手机上显示20列数据网格?和分页?
像这样的东西,我不知道RWD是否适合我?我喜欢整洁的网站,而不是把所有东西都压扁,只是为了让内容进入手机屏幕的边界.
除了Twitter bootstrap,还要考虑其他任何体面的RWD框架吗?我听说过一些体面的框架.
关于 GPS 坐标应以何种格式存储在数据库中,然后在请求时将其转换为所需格式,是否有最佳实践?
我有以下几点:
S33° 56' 51.972" E18° 51' 25.83"
Run Code Online (Sandbox Code Playgroud)
像这样存储在数据库中还是以其他格式存储好?我只是想知道因为它包含度数符号和分秒符号。
以上是否需要保存为一个NVARCHAR(50)或就VARCHAR(50)足够了?
我正在使用,SQL Server但这应该适用于所有形式的数据库。
我的模型中有一个属性,如下所示:
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我知道有十个类似的问题,但没有一个有用.
c# ×5
.net ×3
ado.net ×3
asp.net-mvc ×3
c#-4.0 ×2
javascript ×2
asp.net ×1
css ×1
database ×1
html ×1
html5 ×1
indirection ×1
jquery ×1
nunit ×1
razor ×1
sql ×1
sql-server ×1
unit-testing ×1