我正在创建一个函数,我需要传递一个对象,以便它可以被函数修改.有什么区别:
public void myFunction(ref MyClass someClass)
Run Code Online (Sandbox Code Playgroud)
和
public void myFunction(out MyClass someClass)
Run Code Online (Sandbox Code Playgroud)
我应该使用哪个以及为什么?
我做了一些搜索,我认为以下代码保证产生输出:
B.X = 7
B.X = 0
A.X = 1
A = 1, B = 0
Run Code Online (Sandbox Code Playgroud)
static class B
{
public static int X = 7;
static B() {
Console.WriteLine("B.X = " + X);
X = A.X;
Console.WriteLine("B.X = " + X);
}
}
static class A
{
public static int X = B.X + 1;
static A() {
Console.WriteLine("A.X = " + X);
}
}
static class Program
{
static void Main() {
Console.WriteLine("A = {0}, B = {1}", …Run Code Online (Sandbox Code Playgroud) public class RegisterViewModel{
public RegisterViewModel()
{
MaxDepartmentLevel = db.Settings.Find(1).MaxDepartmentLevel;
}
private ApplicationDbContext db = new ApplicationDbContext();
public int MaxDepartmentLevel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这安全吗?能否保证db会在行之前初始化
MaxDepartmentLevel = db.Settings.Find(1).MaxDepartmentLevel;跑步?
换句话说,具有字段初始化和构造函数的类的执行顺序是什么?
我有一堂课如下:
static class Configuration
{
private static AppSettingsSection _appSettingsLogsSection;
static Configuration()
{
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
_appSettingsLogsSection = config.GetSectionGroup("Logs").Sections["appSettings"] as AppSettingsSection;
}
public static int LogSendIntervalMinutes = Convert.ToInt32(_appSettingsLogsSection.Settings["LogSendIntervalMinutes"]);
}
Run Code Online (Sandbox Code Playgroud)
现在,根据我的理解,应该在第一次引用任何静态成员之前调用静态构造函数。但令人惊讶的是,它的行为却并非如此。当我从 Main 类引用LogSendIntervalMinutes时,调用直接转到静态字段,而不是触发静态构造函数,从而导致 NullReferenceException。
我在这里做错了什么吗?我的理解是否正确?
我有个疑问.
1. namespace JIMS.ViewModel.Stock
2. {
3. internal class StockGroupViewModel : JIMS.ViewModel.BaseViewModel
4. {
5. JIMSEntities dbContext = new JIMSEntities();
6.
7. public StockGroupViewModel()
8. {
9. dbContext = new JIMSEntities();
10. }
11. }
12. }
Run Code Online (Sandbox Code Playgroud)
我有这门课.我想知道哪个是第一个.当我创建这个类的实例
StockGroupViewModel s = new StockGroupViewModel();
Run Code Online (Sandbox Code Playgroud)
Line 5 or Line 9.