相关疑难解决方法(0)

'ref'和'out'关键字之间有什么区别?

我正在创建一个函数,我需要传递一个对象,以便它可以被函数修改.有什么区别:

public void myFunction(ref MyClass someClass)
Run Code Online (Sandbox Code Playgroud)

public void myFunction(out MyClass someClass)
Run Code Online (Sandbox Code Playgroud)

我应该使用哪个以及为什么?

c# reference ref out keyword

851
推荐指数
15
解决办法
37万
查看次数

C#中静态类初始化的顺序是否确定?

我做了一些搜索,我认为以下代码保证产生输出:

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)

c# static deterministic

36
推荐指数
3
解决办法
1万
查看次数

构造函数和字段初始化执行顺序

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;跑步?

换句话说,具有字段初始化和构造函数的类的执行顺序是什么?

c#

6
推荐指数
1
解决办法
6507
查看次数

静态构造函数不在静态字段之前调用

我有一堂课如下:

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。

我在这里做错了什么吗?我的理解是否正确?

.net c# clr static

4
推荐指数
1
解决办法
2463
查看次数

公共成员与C#中的类的构造函数?

我有个疑问.

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.

.net c# wpf constructor class

3
推荐指数
1
解决办法
111
查看次数

标签 统计

c# ×5

.net ×2

static ×2

class ×1

clr ×1

constructor ×1

deterministic ×1

keyword ×1

out ×1

ref ×1

reference ×1

wpf ×1