Trying to understand C# code

I’m a C# beginner and I’m working on a new project of mine. However, I’m trying to go on with this project using tools that already exist in the market, one of them is Open Hardware Monitor. I want to understand what is happening in the code, but naturally, I am not getting that. Could someone explain me some basic things? Like what is the “?” thing when you declare a variable? (i.e: float? Voltages { get; }) And what is dollar symbol ? (i.e: _var = windows.“dollar symbol” ) Ps: I didn’t get to put thew symbol, that’s why I wrote “dollar symbol”

When declaring a variable ? means that it is nullable. Value types cannot be null unless explicitly allowed. Reference types can be null so do not need ?.

Not sure about the $. Do you have a link to a file and line number?

OOH, got it now! Thank you!
About the $, it is JavaScript, I confused myself.
I want to take functions that takes the temperatures and voltages for me from this repo: OHM but I’m not actually finding it. ;-;

In whatever hardware you are looking for (say intel CPU) there should be an update method. That seems to update the value of off the sensors. I looked at Intel CPU and Nvidia GPU and the first thing it gets is the Temperature, I’m going to guess voltage is in there too. You will still have to follow the method calls to find the actual place the temperature is retrieved but it seems the update method in the specific hardware class is the lowest level you can go before it starts being different for the different hardware types.

Thank you, that surely cleared a bit all this darkness. I’ll try to track the methods and see what I get.