ph91.de
  • Home
  • About me
  • Categories
    • Software Development
    • New Zealand
    • Music
    • Tech & IT
    • Sports
    • Dublin
    • Junk
  • Contact
  • Disclaimer
ph91.de
ph91.de
  • Home
  • About me
  • Categories
    • Software Development
    • New Zealand
    • Music
    • Tech & IT
    • Sports
    • Dublin
    • Junk
  • Contact
  • Disclaimer
  • Software Development

Unexpected C# Behaviour

  • 16. September 2018
  • Philipp

I recently stumbled across the unexpected behavior of C# when dealing with static variables. I put it a green unit test:

private static string a = $"a{b}";
private static string b = $"b{2+100}";
private static string c = $"{b}c";

[Test]
public void Test()
{
Assert.AreEqual("a",a);
Assert.AreEqual("b102c", c);
Assert.AreEqual(10, ReturnSum()(2,3));
}

As C# has an ECMA definition, this behavior is described in there (reference found here):


17.11: The execution of a static constructor is triggered by the first of the following events to occur within an application domain:

  • An instance of the class is created.
  • Any of the static members of the class are referenced.

If a class contains the Main method (§10.1) in which execution begins, the static constructor for that class executes before the Main method is called. If a class contains any static fields with initializers, those initializers are executed in textual order immediately prior to executing the static constructor (§17.4.5).

 


Despite that, it is quite weird that the compiler doesn’t warn you if a static member is referencing a static member which is executed later.

 

Related Topics
  • c#
  • compiler
  • ecma
  • language
  • static
Philipp

Previous Article
  • Tech & IT

Configure a postfix mailserver correctly (1blu)

  • 10. September 2018
  • Philipp
View Post
Next Article
  • Software Development

Design Patterns Game

  • 30. April 2019
  • Philipp
View Post
266 comments

Comments navigation

Older comments
Newer comments
  1. https://t.me/s/ofitsialniy_1win/33/lib says:
    23. October 2025 at 17:54

    https://t.me/s/ofitsialniy_1win/33/lib

  2. BradleyTax says:
    23. October 2025 at 21:04

    https://t.me/s/ofitsialniy_1win

  3. BradleyTax says:
    23. October 2025 at 21:58

    https://t.me/s/Official_beefcasino

  4. BradleyTax says:
    23. October 2025 at 23:19

    https://t.me/s/iw_1xbet

  5. https://t.me/s/bs_1xbet/6 says:
    24. October 2025 at 11:24

    https://t.me/s/bs_1xbet/18

  6. https://t.me/s/bs_1xbet/42 says:
    24. October 2025 at 11:55

    https://t.me/bs_1xbet/33

  7. https://t.me/s/bs_1xbet/7 says:
    24. October 2025 at 12:25

    https://t.me/s/bs_1xbet/48

  8. https://t.me/s/bs_1xbet/51 says:
    24. October 2025 at 12:56

    https://t.me/s/bs_1xbet/50

  9. https://t.me/s/bs_1xbet/23 says:
    24. October 2025 at 13:26

    https://t.me/bs_1xbet/40

  10. https://t.me/s/bs_1xbet/17 says:
    24. October 2025 at 13:57

    https://t.me/s/bs_1xbet/21

  11. https://t.me/bs_1xbet/36 says:
    24. October 2025 at 14:27

    https://t.me/bs_1xbet/12

  12. https://t.me/bs_1xbet/50 says:
    24. October 2025 at 14:58

    https://t.me/s/bs_1xbet/11

  13. https://t.me/s/bs_1xbet/2 says:
    24. October 2025 at 15:28

    https://t.me/s/bs_1xbet/2

  14. https://t.me/bs_1xbet/20 says:
    24. October 2025 at 16:00

    https://t.me/s/bs_1xbet/2

  15. https://t.me/s/bs_1xbet/13 says:
    24. October 2025 at 16:30

    https://t.me/s/bs_1xbet/40

  16. https://t.me/s/bs_1xbet/48 says:
    24. October 2025 at 17:00

    https://t.me/s/bs_1xbet/5

  17. https://t.me/bs_1xbet/44 says:
    24. October 2025 at 17:32

    https://t.me/bs_1xbet/13

  18. https://t.me/s/bs_1xbet/9 says:
    24. October 2025 at 18:03

    https://t.me/s/bs_1xbet/18

  19. https://t.me/s/bs_1xbet/26 says:
    24. October 2025 at 18:34

    https://t.me/bs_1xbet/27

  20. https://t.me/s/bs_1xbet/24 says:
    24. October 2025 at 19:06

    https://t.me/bs_1xbet/13

  21. https://t.me/s/bs_1xbet/39 says:
    24. October 2025 at 19:37

    https://t.me/bs_1xbet/30

  22. https://t.me/bs_1xbet/42 says:
    24. October 2025 at 20:07

    https://t.me/s/bs_1xbet/38

  23. https://t.me/s/bs_1xbet/15 says:
    24. October 2025 at 20:38

    https://t.me/s/bs_1xbet/29

  24. https://t.me/s/bs_1xbet/26 says:
    24. October 2025 at 21:07

    https://t.me/bs_1xbet/31

  25. https://t.me/s/bs_1xbet/39 says:
    24. October 2025 at 21:38

    https://t.me/bs_1xbet/7

  26. https://t.me/bs_1xbet/45 says:
    24. October 2025 at 22:09

    https://t.me/bs_1xbet/22

  27. https://t.me/s/bs_1xbet/40 says:
    24. October 2025 at 22:39

    https://t.me/s/bs_1xbet/15

  28. https://t.me/s/bs_1xbet/37 says:
    24. October 2025 at 23:08

    https://t.me/bs_1xbet/21

  29. https://t.me/s/bs_1xbet/16 says:
    24. October 2025 at 23:38

    https://t.me/s/bs_1xbet/16

  30. https://t.me/bs_1xbet/2 says:
    25. October 2025 at 00:08

    https://t.me/bs_1xbet/26

  31. https://t.me/bs_1xbet/6 says:
    25. October 2025 at 00:37

    https://t.me/s/bs_1xbet/40

  32. https://t.me/s/bs_1xbet/30 says:
    25. October 2025 at 01:06

    https://t.me/bs_1xbet/18

  33. https://t.me/bs_1xbet/51 says:
    25. October 2025 at 01:36

    https://t.me/s/bs_1xbet/43

  34. https://t.me/s/bs_1xbet/49 says:
    25. October 2025 at 02:07

    https://t.me/s/bs_1xbet/50

  35. https://t.me/bs_1xbet/5 says:
    25. October 2025 at 02:36

    https://t.me/bs_1xbet/14

  36. https://t.me/s/bs_1xbet/12 says:
    25. October 2025 at 03:05

    https://t.me/s/bs_1xbet/48

  37. https://t.me/s/bs_1xbet/6 says:
    25. October 2025 at 03:36

    https://t.me/s/bs_1xbet/25

  38. https://t.me/bs_1xbet/7 says:
    25. October 2025 at 04:06

    https://t.me/s/bs_1xbet/24

  39. https://t.me/bs_1xbet/36 says:
    25. October 2025 at 04:36

    https://t.me/bs_1xbet/23

  40. https://t.me/s/bs_1xbet/46 says:
    25. October 2025 at 05:07

    https://t.me/s/bs_1xbet/17

  41. https://t.me/s/bs_1xbet/14 says:
    25. October 2025 at 05:36

    https://t.me/bs_1xbet/11

  42. https://t.me/s/bs_1xbet/44 says:
    25. October 2025 at 06:06

    https://t.me/s/bs_1xbet/48

  43. https://t.me/s/bs_1xbet/44 says:
    25. October 2025 at 06:35

    https://t.me/bs_1xbet/33

  44. https://t.me/bs_1xbet/46 says:
    25. October 2025 at 07:05

    https://t.me/bs_1xbet/46

  45. https://t.me/s/bs_1xbet/30 says:
    25. October 2025 at 07:35

    https://t.me/bs_1xbet/30

  46. Georgedut says:
    27. October 2025 at 08:30

    https://t.me/s/jw_1xbet/44

  47. Georgedut says:
    27. October 2025 at 09:50

    https://t.me/jw_1xbet/974

  48. Georgedut says:
    27. October 2025 at 11:12

    https://t.me/jw_1xbet/84

  49. Georgedut says:
    27. October 2025 at 12:32

    https://t.me/jw_1xbet/843

  50. Georgedut says:
    27. October 2025 at 13:56

    https://t.me/jw_1xbet/220

Comments navigation

Older comments
Newer comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Dev profiles
  • BitBucket
  • Github
  • Stackoverflow
Side Projects
  • NMF
  • Speed-kini.de
  • Sudoku Solver
  • Windwarner
Archive
ph91.de
Blog by Philipp Schreitmüller

Input your search keywords and press Enter.