c#生成不失真的