You wouldn't be able to use Bitcoin's source code as a starting point without major work and you won't be able to easily implement improvements made to Bitcoin. Performance may be an issue, C# uses garbage collection, which introduces unnecessary overhead. There are ways to use C++ classes in a C# program, this might be an option but I don't have experience mixing C# and C++ to know if it's a good idea.