我今天正在浏览同事c#代码并发现以下内容:
using (MemoryStream data1 = new MemoryStream())
using (MemoryStream data2 = new MemoryStream())
{
// Lots of code..........
}
Run Code Online (Sandbox Code Playgroud)
我一直看到using声明后跟一对花括号,它们定义了对象生命的范围.我编写代码的同事说,data1 using语句的大括号不需要,代码做的就像它们存在并嵌套data2 using语句一样.那么,当花括号被省略时会发生什么?
我有一个具有固定记录长度的数据文件.没有回车符或换行符来分隔记录.如何使用Notepad ++(其中X是记录长度)在每个X字符处插入回车换行符对?
我正在使用ComboBox控件,无法从我的viewmodel上的属性中设置SelectedItem.这是控件定义:
<ComboBox x:Name="jobEmployee" Grid.Column="1" Grid.Row="2"
Margin="4" HorizontalAlignment="Left" Width="150"
SelectedItem="{Binding Path=EditingJob.Employee, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}"
ItemsSource="{Binding Path=Employees, Mode=OneWay}"
DisplayMemberPath="FullName"/>
Run Code Online (Sandbox Code Playgroud)
我有另一个Combobox控件,工作得很好.设置SelectedItem的设备与不设置SelectedItem的设备之间的差异是属性定义的顺序.这是工作控件定义:
<ComboBox x:Name="jobEmployee" Grid.Column="1" Grid.Row="2"
Margin="4" HorizontalAlignment="Left" Width="150"
ItemsSource="{Binding Path=Employees, Mode=OneWay}"
SelectedItem="{Binding Path=EditingJob.Employee, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}"
DisplayMemberPath="FullName"/>
Run Code Online (Sandbox Code Playgroud)
2之间的区别在于ItemsSource是在工作的SelectedItem之前定义的,这使我相信至少在这种情况下,属性定义顺序很重要.我错过了什么或让别人发现这是真的吗?有没有记录在任何地方?
我想创建一个函数来检查作为参数传递的数值是否具有大于零的值.像这样的东西:
public bool IsGreaterThanZero(object value)
{
if(value is int)
{
return ((int)value > 0);
}
else if(value is float)
{
// Similar code for float
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我可以尝试将作为函数参数传递的对象转换为一个数值数据类型,这样我就可以将它与零进行比较,而不是检查if语句中的每个类型吗?如果演员表失败,我会返回false.有没有更好的(阅读更短,更可读)的方式来做到这一点?
编辑: 有人问我是否知道类型将是数字,为什么对象等.我希望这使事情更清楚.
此函数将是Silverlight转换器的一部分,该转换器实现IValueConverter具有转换签名的接口
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
Run Code Online (Sandbox Code Playgroud)
首先,我只想让转换器与int一起工作,但我的想象力开始疯狂,想想如果我有浮点数和其他数字类型.我想让转换器尽可能灵活.最初我认为所有这些额外的信息都会妨碍我想做的事情,所以我没有把它包含在我的问题中.
在Juides Lowy的"C#编码标准"中,可以从www.idesign.net获得,推荐使用C#预定义类型而不是System命名空间中的别名.
object NOT Object
string NOT String
int NOT Int32
Run Code Online (Sandbox Code Playgroud)
这有什么好处?他们有什么不同?我在自己的编码中遵循了这个建议,但从未知道它们有何不同.
Style StaticResources的最佳放置位置在哪里?我一直将app.xaml中的全局和默认样式以及page_name.xaml中的页面特定样式放在中.每个控件都应该有自己的样式StaticResource吗?在控件中放置一些样式属性是否可以接受?我有一个包含5个TextBox的页面,如果唯一的区别是Width或MaxLength属性,是否应该有每个样式?或者是否应使用每个TextBox的公共属性定义一个样式,并在控件元素中定义特定的样式属性?
我的应用程序所有者希望选择的文本字段为大写,就像大写锁定打开一样.我正在使用具有这些字段的observable的KnockoutJS视图模型.有没有办法可以将任何用户输入的文本转换为大写?
我input在我想要改变的控件上放了一个事件,但发现尽管它有效,但是observable并没有更新.
<input type="text" maxlength="80" data-bind="value: colorName, disable: $parent.isReadOnly, event: { 'input': toUpper }" />
toUpper: function (d, e) {
if (e.target) {
if (e.target.value) {
e.target.value = e.target.value.toUpperCase();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在考虑将ucaseCSS类放在我希望成为大写的控件上,然后在客户端或服务器上,将这些字段保存为大写.
.ucase {
text-transform: uppercase;
}
Run Code Online (Sandbox Code Playgroud) 鉴于代码:
for (int i = 1; i <= 5; i++)
{
// Do work
}
Run Code Online (Sandbox Code Playgroud)
是否可以接受改变i循环内的值?例如:
for (int i = 1; i <= 5; i++)
{
if( i == 2)
{
i = 4;
}
// Do work
}
Run Code Online (Sandbox Code Playgroud) 在我的Silverlight解决方案的服务器端,我有2个项目.
我有一个具有FirstName和LastName属性的实体.我想添加一个可以从Silverlight客户端获得的FullName属性.
我添加了属性:
namespace Server.DAL.Model
{
public partial class Contact
{
public string FullName
{
get
{
return string.Format("{0} {1}", this.FirstName, this.LastName);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
从服务器端进行测试时,此新属性存在且工作正常.该属性不存在于Silverlight客户端.我尝试使用Include属性添加元数据类,但由于字符串是基本类型,因此在编译时出现以下错误:
实体类型"Contact"中的属性"FullName"无法使用IncludeAttribute标记,因为"String"不是有效的实体类型.实体类型不能是原始类型或简单类型,如字符串或Guid.
如何将此属性提供给Silverlight客户端?
常用的字符串数据存储类型是否有任何推荐的字段大小?例如FirstName,LastName,AddressLine1,AddressLine2,City,State,PostalCode,EmailAddress等等.我相信任何创建表来存储这些常用数据字段的人都必须决定使用哪个最大大小.
你重视什么?
您是否有某种用于做出决定的公式(例如所有字段大小是8的倍数)?
贵公司是否有指导方针,因此包含这些字段的所有表格都是统一的?
这只是个人的事吗?
我知道如果我有一个固定的标准,我就不必停下来思考它并最终得到不同大小的字段.在UI上工作时,这种一致性也会很好,因为在输入字段和任何数据验证代码上设置maxlength会更容易.
c# ×4
silverlight ×3
.net ×1
database ×1
javascript ×1
knockout.js ×1
notepad++ ×1
sql-server ×1