[DllImport(MyUnmanagedLibrary, CallingConvention = CallingConvention.Cdecl)]
internal static extern int MyFunction();
Run Code Online (Sandbox Code Playgroud)
假设这是我从非托管C++库导入的函数.在这种情况下,外部函数被声明为返回一个int.int托管C#代码的大小不会改变,但它会根据非托管C++代码中的体系结构而改变.假设它返回一个是安全的int吗?我应该使用IntPtr,作为返回值吗?或者是其他东西?
假设我们有一个方法:
public void SomeMethod(out string[] someArray) { // ... }
Run Code Online (Sandbox Code Playgroud)
有没有办法做类似的事情:
IEnumerable<string> result;
SomeMethod(out result);
Run Code Online (Sandbox Code Playgroud)
编辑:重点是,我不想将out值绑定到string[],我希望代码能够工作,即使方法声明被更改为SomeMethod(out List<string> outputValue).
假设我有一个Post模型:
class Post < ActiveRecord::Base
belongs_to :category
end
Run Code Online (Sandbox Code Playgroud)
和Category模型:
class Category < ActiveRecord::Base
has_many: :posts
end
Run Code Online (Sandbox Code Playgroud)
我可以使用dependent: :destroy删除特定类别时删除所有帖子,但我不想删除帖子,我只想通过设置category_id这些帖子的列来删除与该特定类别的关联nil.
是否有"Rails方式"开箱即用,或者我是否需要使用一些回调?
我一直在Visual Studio 2010 Ultimate Edition上使用ReSharper(v 7.1.2)的试用版.我使用的是HP Elitebook 8570w,配备了i7-3610QM CPU和4GB内存,因此性能不应成为问题.它运行得很好,但由于某些原因,当我编辑XAML时,它会非常糟糕.每当我输入内容时,每次按键都会滞后.
有没有人有这个问题的解决方案?如果没有,有没有办法只为XAML文件禁用Resharper?
我正在使用Rails 4,我想使用自定义配置功能,如下所述:
http://guides.rubyonrails.org/configuring.html#custom-configuration
我创建了以下YAML文件(config\prefs.yml):
development:
password: test
Run Code Online (Sandbox Code Playgroud)
我把它添加到我的config/application.rb:
module MyApp
class Application < Rails::Application
# ...
config.x.prefs = Rails.application.config_for(:prefs)
end
end
Run Code Online (Sandbox Code Playgroud)
当我进入rails控制台时,我得到了这个:
> Rails.configuration.x.prefs
=> {}
Run Code Online (Sandbox Code Playgroud)
为什么Rails没有正确加载配置?
假设我有一个类,我希望它的一个方法根据参数表现不同.我想做的是这样的事情(我知道这在Java中不起作用):
class myClass(int a) {
public void myMethod() {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
我有一个方法,它将float类型的集合作为参数.大多数情况下,a ReadOnlyCollection<float>传递给方法,但有时也传递不同类型的集合,如List.
什么是参数的最佳类型?我应该使用:public void MyMethod(Collection<float>)?这是好习惯吗?
我有一个DataGridView,我将它绑定到一个BindingList<KeyValuePair<string, float>>.这是代码的相关部分:
dgv.AutoGenerateColumns = false;
DataGridViewTextBoxColumn firstColumn = new DataGridViewTextBoxColumn();
firstColumn.DataPropertyName = "Key";
firstColumn.HeaderText = "First Column";
DataGridViewTextBoxColumn secondColumn = new DataGridViewTextBoxColumn();
secondColumn.DataPropertyName = "Value";
secondColumn.HeaderText = "Second Column";
secondColumn.ReadOnly = false;
secondColumn.ValueType = typeof(float);
dgv.Columns.Add(firstColumn);
dgv.Columns.Add(secondColumn);
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dgv.MultiSelect = false;
dgv.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2;
dgv.ReadOnly = false;
_bindingList = new BindingList<KeyValuePair<string, float>>(_someList);
dgv.DataSource = _bindingList;
Run Code Online (Sandbox Code Playgroud)
但第二列仍然不可编辑.我应该怎么做才能使第二列可编辑而第一列不可编辑?
编辑:我希望更改能够反映在BindingList实例本身上.
编辑2:我在代码的末尾添加了这一行,现在我收到一个错误:
dgv.Columns[1].ReadOnly = false;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
DataGridView column bound to a read-only field must …
假设您正在使用 TDD 开发产品。您逐步添加测试并最终得到一个大方法。现在是重构的时候了,因此您将方法分离为更小的方法。例如;
// Before refactoring.
public void SomeMethod()
{
// ...
int sum = numbers.Sum();
// ...
}
// After refactoring.
public void SomeMethod()
{
// ...
int sum = GetSumOfNumbers(numbers);
// ...
}
private GetSumOfNumbers(int[] numbers)
{
return numbers.Sum();
}
Run Code Online (Sandbox Code Playgroud)
在这一步之后,您是否应该为该GetSumOfNumbers方法编写测试?我想当我们测试时SomeMethod,我们已经测试了GetSumOfNumbers。但与此同时,可能还有其他方法在使用GetSumOfNumbers,即使它适用于SomeMethod,也可能不适用于另一种方法。这将帮助我们更快地找到问题(因为测试会给出更具体的错误)。但同时,也许这没有用,并且增加了冗长。
你怎么看待这件事?在这个例子中,GetSumOfNumbers方法是私有的,所以如果你认为它不应该仅仅因为它是私有的而被测试,那么如果它是公共的,它应该被测试吗?
我正在学习分层架构,我想知道如何在这样的设计中添加日志系统.
现在让我们说我们有三层:
并假设只有更高级别的层知道下面一层的层.例如,表示层知道业务层,但不是相反.
你应该在哪里实现一般记录器类?
实施日志记录机制的好地方是什么?
在实施之后,使用这样一个系统的方法是什么?
ILogger?正如您所看到的,我对这个主题非常困惑,在我目前的工作中,没有人对企业应用程序设计/分层设计有任何了解,即使他们正在设计企业应用程序.所以任何帮助向我展示正确的方向将不胜感激.
c# ×6
activerecord ×1
associations ×1
binding ×1
bindinglist ×1
c++ ×1
class ×1
collections ×1
datagridview ×1
enterprise ×1
ienumerable ×1
java ×1
logging ×1
out ×1
parameters ×1
pinvoke ×1
resharper ×1
tdd ×1
unit-testing ×1
wpf ×1
xaml ×1