C# is one of the .NET languages. So I will try to speak in .NET Terms.
1- is the dll we used in c# compiled to binary ?
No, everything .NET is compiled to MSIL. Not binary, not machine code. It is the job of the runtime to do the final translation to machine code.
You can roughly compare MSIL code to Java Bytecode.
2- so how can i reuse it in another app what i meant when i create another c# project i can go and using the same name of the dll and i can use all the class Which is inside the dll
The exact same way, you already use the dll's wirrten by the .NET Team:
- Add Reference to project.
- Use fully qualified names and/or using directives.
Note that .exe can also be used as reference. Their internal structure is pretty similar to .NET .dll, except for some native bootstrap code and a start point.