There is no difference.
using
statements makes your code short and more readable. There is no problem if you use it in many modules. Same IL (Intermediate Language) code created for both version. You can check it these two piece of code and their IL codes;
using System;
namespace Programs
{
public class Program
{
public static void Main(string[] args)
{
string s = "Foo";
}
}
}
.method public hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 8 (0x8)
.maxstack 1
.locals init ([0] string s)
IL_0000: nop
IL_0001: ldstr "Foo"
IL_0006: stloc.0
IL_0007: ret
} // end of method Program::Main
namespace Programs
{
public class Program
{
public static void Main(string[] args)
{
System.String s = "Foo";
}
}
}
.method public hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 8 (0x8)
.maxstack 1
.locals init ([0] string s)
IL_0000: nop
IL_0001: ldstr "Foo"
IL_0006: stloc.0
IL_0007: ret
} // end of method Program::Main