Tag: 方法

C#中的静态类,有什么优缺点?

我正在为我的学校作业编写一个小游戏,游戏是一个简单的2D游戏,有怪物,物品和子弹。 基本上你跑来跑去并试图收集所有物品硬币,怪物试图阻止你,你可以用你收集的子弹击落它们。 非常简单。 问题是,我已经将怪物,物品,墙壁,玩家和子弹添加到名为LiveObjects的静态类中,然后我可以从代码中的任何位置访问这些对象。 这是一种不好的做法吗? 什么是替代品? (它不是multithreading的) LiveObjects.cs internal static class LiveObjects { public static List items = new List(); // List with all the items public static List monsters = new List(); // List with all present monsters public static List walls = new List(); // List with the walls public static List bullets […]

如何将Class作为方法的参数传递?

我有两个class: Class Gold; Class Functions; 类Functions有一个方法ClassGet ,它有2个参数。 我想发送类Gold作为类Functions一个方法的参数。 这怎么可能? 例如: public void ClassGet(class MyClassName, string blabla) { MyClassName NewInstance = new MyClassName(); } 注意:我想将MyClassName作为字符串参数发送到我的方法。

为什么不在构造函数中调用可覆盖的方法?

这是一个过于简单的例子,但是我有一些现实生活中的代码在概念上做同样的事情(试图validation派生类的“set”访问器方法的值),并且Analyzer给了我“不要在构造函数中调用可覆盖的方法”。 我试图找出是否应该更改我的代码,或忽略警告。 我想不出任何理由我应该留意这个警告。 public abstract class SimpleUrl { protected string _url; public abstract string Url { get; set; } public SimpleUrl() { } public SimpleUrl(string Url) { this.Url = Url; } } public class HttpUrl : SimpleUrl { public HttpUrl() { } public HttpUrl(string Url) { this.Url = Url; } public override string Url { […]

重载null歧义

我有以下方法: void Method(string param1, string param2); void Method(string param1, object param2); 当我使用以下方法调用该方法时: method(“string”, null); 它给出了一个错误,因为调用是模糊的,编译器不知道要调用哪个版本,因为两个方法都接受null作为第二个参数。 如何在不更改其中一个方法名称的情况下克服此问题? 第一个方法永远不会为null 。

如何在c#中调用visual basic 6.0方法?

我想用c#(visual studio 2008)编写一个用visual basic 6.0编写的方法。 可能吗? 我该怎么办?

C# – 通过引用传递参数到构造函数,然后从方法中使用它们

在下面的代码中,我试图从类TestClass中获取一个方法(Work)来更改主程序中某些变量的值,而不必返回它们。 变量通过TestClass构造函数中的引用传递。 class Program { static void Main(string[] args) { int a, b, c, d; a = 5; b = 10; c = 20; d = 25; Console.WriteLine(“Main before TestClass: a=” + a + ” b=” + b + ” c=” + c + ” d=” + d); TestClass testObj = new TestClass(ref a,ref b,ref […]

如何在不使用ping的情况下检查Web服务是否已启动并运行?

如何检查Web服务中的方法是否正常工作? 我不能用ping。 我仍然想检查客户端从Web服务调用的任何方法。 我知道很难概括,但应该有一些方法。

在C#中,如何将某些方法调用完全保留在代码库之外?

我试图摆脱所有DateTime.Now方法调用,并用我自己的GetNow()方法替换它们,有时可能会返回固定日期以进行测试。 如何强制执行以后没有人添加DateTime.Now调用? 我可以使用NDepend或StyleCop在我的持续集成服务器上进行检查吗?

C#索引器的优点是什么?

做了一些代码阅读,并偶然发现了我之前从未见过的片段: public SomeClass { public someInterface this[String strParameter] { get { return SomeInternalMethod(strParameter); } } } 它看起来像是如下调用: SomeClass _someClass = new SomeClass(); SomeInterface returnedValue = _someClass[“someString”]; 我感兴趣的是这个函数适合的位置或者这种风格的写作意图。 例如,为什么这比仅仅调用函数更受欢迎?

如何表明方法不成功

我有几种类似的方法,例如。 CalculatePoint(…)和CalculateListOfPoints(…)。 有时候,它们可能不会成功,需要向呼叫者表明这一点。 对于返回通用List的CalculateListOfPoints,我可以返回一个空列表并要求调用者检查这个; 但是Point是一个值类型,所以我不能在那里返回null。 理想情况下,我希望这些方法“看起来”相似; 一种解决方案可能是将它们定义为 public Point CalculatePoint(… out Boolean boSuccess); public List CalculateListOfPoints(… out Boolean boSuccess); 或者返回一个点? 对于CalculatePoint,并返回null以指示失败。 这意味着必须回归到非可空类型,这似乎是过度的。 另一种方法是返回布尔boSuccess,将结果(Point或List)作为’out’参数,并将它们称为TryToCalculatePoint或其他… 什么是最佳做法? 编辑:我不想使用Exceptions进行流量控制! 有时候会失败。