小编Sar*_*els的帖子

为什么内部保护不比内部更严格?

我想创建一个内部自动属性:

internal bool IP { get; protected internal set; }
Run Code Online (Sandbox Code Playgroud)

我认为可以制作setter protectedprotected internal- 但我总是得到错误的accessibility修饰符必须比属性更具限制性.不是这样的吗?Private这里没有帮助我.

编辑:
问题是:如何使用内部getter和受保护的setter实现自动属性?

c# access-modifiers

31
推荐指数
4
解决办法
6374
查看次数

C#/ .NET中方法的自动文档异常

我想要一些工具,最好是一个插入VS 2008/2010的工具,它将通过我的方法并添加关于它们可能抛出的异常的XML注释.我不希望<summary>为我生成或其他XML标记,因为我将自己填写,但如果即使在private/ protected方法我可以看到可以抛出哪些异常也会很好.否则,我发现自己经历了这些方法并将其悬停在其中的所有方法调用中以查看异常列表,然后更新该方法的<exception列表以包含这些.也许一个VS宏可以做到这一点?

由此:

private static string getConfigFilePath()
{
    return Path.Combine(Environment.CurrentDirectory, CONFIG_FILE);
}
Run Code Online (Sandbox Code Playgroud)

对此:

/// <exception cref="System.ArgumentException"/>
/// <exception cref="System.ArgumentNullException"/>
/// <exception cref="System.IO.IOException"/>
/// <exception cref="System.IO.DirectoryNotFoundException"/>
/// <exception cref="System.Security.SecurityException"/>
private static string getConfigFilePath()
{
    return Path.Combine(Environment.CurrentDirectory, CONFIG_FILE);
}
Run Code Online (Sandbox Code Playgroud)

更新: 看起来工具必须递归地遍历这些方法,例如,method1调用method2,它调用method3,记录为throw NullReferenceException,因此method2和method1都被工具记录为throw NullReferenceException.该工具还需要消除重复,如果方法中的两个调用被记录为抛出DirectoryNotFoundException,该方法将只列出<exception cref="System.IO.DirectoryNotFoundException"/>一次.

c# documentation exception xml-documentation

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

WPF,'对象引用未在Designer中设置为对象的实例'

当我尝试为我的XAML重新加载Designer时,我得到一个"对象引用没有设置为对象的实例"错误UserControl.Visual Studio突出显示以下行作为问题:

<local:TemplateDetail Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="3"
    Width="600" TemplateData="{Binding ElementName=cbo_templates,
                               Path=SelectedItem.Data, Mode=OneWay}"/>
Run Code Online (Sandbox Code Playgroud)

TemplateDetail是另一个UserControl.当我查看时TemplateDetail,它的Designer视图加载得很好,所以我认为那里没有问题.ComboBox我的XAML中有一个命名cbo_templates包含我的Template类的实例,它有一个Data属性(因此SelectedItem.Data).但是,如果我.DataPath上面的XAML中删除,我仍然得到"对象引用"错误,所以我不认为问题是我正在尝试访问该Path属性null.这是我的ComboBoxXAML以防万一:

<ComboBox ItemsSource="{Binding Path=List}" Grid.Row="1" Grid.Column="3"
          VerticalAlignment="Center" x:Name="cbo_templates" Width="250"
          HorizontalAlignment="Left" DisplayMemberPath="Name"
          SelectedValuePath="Name" SelectedIndex="0"/>
Run Code Online (Sandbox Code Playgroud)

获取此错误是一个真正的问题,因为设计视图无法加载,因此如果UserControl不运行应用程序,我无法看到我的样子.知道什么可能是错的吗?它构建良好,我没有看到构建输出中的任何绑定问题.

编辑: 这是两个UserControls 的构造函数代码:

UserControl带有"对象引用"错误的构造函数:

InitializeComponent();
grd_templateList.DataContext = this; // refers to containing <Grid> in XAML
Run Code Online (Sandbox Code Playgroud)

UserControl我正在尝试嵌入的构造函数,其Design视图加载正常的构造函数:

InitializeComponent();
grd_templateDetail.DataContext = this; // refers …
Run Code Online (Sandbox Code Playgroud)

.net wpf xaml visual-studio-2010

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

我应该拥有什么Ruby知识?

我刚刚发现了我应该拥有的c#知识?问题和想知道一样,但对于Ruby.我认为Ruby是我最喜欢的编程语言,除了学习基础知识之外,至少我从众多Ruby on Rails项目和一些Ruby脚本中学到了什么,我试图通过阅读像Gluttonous,O'这样的博客来学习. Reilly Ruby,Ola BiniPolishing Ruby.我也读过像The Ruby Way这样书.

但是,在接受有关我的Ruby技能的采访时,我还没有充分准备.我被问过一次是否知道关闭,最初我回答说我没有,但后来我问是否面试官意味着代码块,比如lambda和do...... end,他做了.我是如何进行3年Ruby编程并尝试学习语言而不学习闭包=代码块的?

所以,我的问题是Ruby程序员应该具备Ruby语言的知识吗?你有什么期望,作为Ruby职位的采访者,我知道吗?只列出一些主题,我会阅读它们.如果您认为有必要,列出Ruby on Rails,Rake,Rack等特定于Ruby的工具也很好.

ruby

26
推荐指数
4
解决办法
4125
查看次数

Rails表单验证

我有一个Rails应用程序,允许用户通过填写​​一个扩展的表单来构建数据库查询.我想知道在Rails中检查表单参数的最佳实践.以前,我有我的results方法(表单提交的方法)执行以下操作:

if params[:name] && !params[:name].blank?
  @name = params[:name]
else
  flash[:error] = 'You must give a name'
  redirect_to :action => 'index'
  return
end
Run Code Online (Sandbox Code Playgroud)

但对于几个表格领域,每个人都看到这个重复,这很令人厌烦.我不能只是将它们全部放在某个循环中以检查每个字段,因为字段设置不同:

  • 一把钥匙: params[:name]
  • 一把钥匙和一把子钥匙: params[:image][:font_size]
  • 如果设置了另一个字段,则只期望填写一些表单字段

等等.这也是重复的,因为我flash[:error]为每个缺失/无效参数设置,并为每个参数重定向到相同的URL.我切换到使用一个before_filter检查所有必要的表单参数,只有一切都没问题才返回true.然后我的results方法继续,变量只是被分配为flat-out,不涉及检查:

@name = params[:name]
Run Code Online (Sandbox Code Playgroud)

在我的validate_form方法中,我有以下代码部分:

if (
  params[:analysis_type][:to_s] == 'development' ||
  params[:results_to_generate].include?('graph')
)
  {:graph_type => :to_s, :graph_width => :to_s,
   :theme => :to_s}.each do |key, sub_key|
    unless params[key] && params[key][sub_key]
      flash[:error] = "Cannot leave '#{Inflector.humanize(key)}' blank"
      redirect_to(url)
      return false
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我只是想知道我是否会以最好的方式解决这个问题,或者在参数验证方面我是否遗漏了一些明显的东西.我担心这仍然不是最有效的技术,因为我有几个块,我分配一个值 …

forms validation ruby-on-rails

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

Rails中的常量值

我有一些数据,我想存储在我的Rails应用程序中,因为我用它来生成表单字段,检查提交的表单以确保其值有效等等.基本上,我希望数据在一个位置,因为我使用它在几个地方.

以前,我initialize在我的控制器中定义了一个方法,并在该方法中初始化实例变量,例如@graph_types = ['bar', 'line'].这似乎是一个坏主意,因为实际上所有这些initialize都被用于(初始化这些值),实例变量可以在以后更改,这是我不想要的.

现在,我在我的控制器中的任何方法之外定义常量,在我的过滤器后面的顶部,然后我冻结它们,例如GraphTypes = ['bar', 'line'].freeze.

我不想将这些数据存储在配置文件中,因为那时我必须跟踪一个额外的文件,读入文件并解析它等等.我不想将这些数据存储在数据库中,因为那样看起来有点矫枉过正; 我不需要做任何疯狂的LEFT OUTER JOIN类型查询,将可用的图形类型与我的另一个常量相结合Themes = ['Keynote', 'Odeo', '37 Signals', 'Rails Keynote'].freeze.我不想将数据存储在environment.rb中,因为此数据仅适用于特定的控制器.

考虑到这一切,我是否会采用这种"Ruby方式"?

ruby ruby-on-rails constants

22
推荐指数
3
解决办法
4万
查看次数

将数组的值分配给一行中的变量

我可以将数组中的每个值分配给C#中的一行中的变量吗?这是Ruby代码中我想要的一个例子:

irb(main):001:0> str1, str2 = ["hey", "now"]
=> ["hey", "now"]
irb(main):002:0> str1
=> "hey"
irb(main):003:0> str2
=> "now"
Run Code Online (Sandbox Code Playgroud)

我不确定我在C#中是否可能需要什么.

编辑: 对于那些暗示我只是将字符串"嘿"和"现在"分配给变量的人,这不是我想要的.想象一下:

irb(main):004:0> val1, val2 = get_two_values()
=> ["hey", "now"]
irb(main):005:0> val1
=> "hey"
irb(main):006:0> val2
=> "now"
Run Code Online (Sandbox Code Playgroud)

现在,该方法get_two_values返回字符串"hey"和"now" 的事实是任意的.实际上它可以返回任何两个值,它们甚至不必是字符串.

c# arrays string initialization declaration

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

为什么我的左连接没有返回空值?

在sql server 2008中,我有以下查询:

select      
    c.title as categorytitle,
    s.title as subcategorytitle,
    i.title as itemtitle
from categories c
join subcategories s on c.categoryid = s.categoryid
left join itemcategories ic on s.subcategoryid = ic.subcategoryid 
left join items i on ic.itemid = i.itemid and i.siteid = 132
where (ic.isactive = 1 or ic.isactive is null)
order by c.title, s.title
Run Code Online (Sandbox Code Playgroud)

我试图在他们的子类别中获取项目,但如果类别或子类别中没有项目,我仍然想要返回记录.永远不会返回没有项目的子类别.我究竟做错了什么?

谢谢

编辑

使用第二个左连接和where子句修改查询,但它仍然没有返回空值.:/

编辑2

将siteid移动到项目左连接.当我这样做时,我获得了比预期更多的记录.有些项目具有空的siteid,我只想在具有特定ID时包含它们.

编辑3

表结构:

Categories Table 
-------
CategoryID
Title

SubCategories Table
-------
SubCategoryID
CategoryID
Title

ItemCategories Table
-------
ItemCategoryID
ItemID
SubCategoryID …
Run Code Online (Sandbox Code Playgroud)

sql t-sql left-join sql-server-2008

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

为什么C#要求您在每次触发事件时都写一个空检查?

这对我来说似乎很奇怪 - VB.NET通过其RaiseEvent关键字隐式处理空检查.它似乎大大增加了围绕事件的样板数量,我看不出它提供了什么好处.

我确信语言设计师有充分的理由这样做..但我很好奇,如果有人知道为什么.

c# null events

21
推荐指数
4
解决办法
1558
查看次数

在Rspec 3中Rspec any_instance的新等价物是什么?

通常在我的Rails控制器测试中,我会before { Website.any_instance.stub(:save).and_return(false) }测试当记录不保存时会发生什么.它似乎any_instance与Rspec 3一起消失了.

我尝试使用before { allow(Website).to receive(:save).and_return(false) }Rspec 3,但现在我收到此错误:

网站(id:整数,...)未实现:save

是否有替代any_instanceRspec 3 非常有用?

testing rspec ruby-on-rails

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