Tag: C#的

在C#中重载赋值运算符

我知道=运算符不能被重载,但是一定有办法做到我想在这里: 我只是创build类来表示量化单位,因为我正在做一些物理学。 显然,我不能只从一个原始的inheritance,但我希望我的类与原语完全一样 – 我只是希望它们以不同的方式input。 所以我可以去, Velocity ms = 0; ms = 17.4; ms += 9.8; 等等 我不知道如何做到这一点。 我想我只是写这样的一些类: class Power { private Double Value { get; set; } //operator overloads for +, -, /, *, =, etc } 但显然我不能重载赋值运算符。 有什么办法可以得到这种行为?

我如何在C#中别名类名?

我想创build一个类名称的别名。 以下语法将是完美的: public class LongClassNameOrOneThatContainsVersionsOrDomainSpecificName { … } public class MyName = LongClassNameOrOneThatContainsVersionOrDomainSpecificName; 但它不会编译。 例 注意这个例子只是为了方便。 build议改变整个系统的devise,不要试图解决这个问题。 这个例子的存在或缺乏并没有改变原来的问题。 一些现有的代码依赖于静态类的存在: public static class ColorScheme { … } 此配色scheme是Outlook 2003配色scheme。 我想要引入Outlook 2007配色scheme,同时保留Outlook 2003配色scheme: public static class Outlook2003ColorScheme { … } public static class Outlook2007ColorScheme { … } 但我仍然面临这样的事实,代码依赖于一个名为ColorScheme的静态类的存在。 我的第一个想法是创build一个ColorScheme类,我将从Outlook2003或Outlook2007下降: public static class ColorScheme : Outlook2007ColorScheme { } […]

我如何获得我的自定义属性被应用的成员?

我在C#中创build一个自定义属性 ,我想根据属性是应用于方法还是属性做不同的事情。 起初,我将在自定义属性构造函数中执行new StackTrace().GetFrame(1).GetMethod()以查看称为属性构造函数的方法,但现在我不确定那会给我什么。 如果该属性应用于某个属性,该怎么办? GetMethod()会为该属性返回一个MethodBase实例吗? 是否有不同的方式获得在C#中应用了属性的成员? [AttributeUsage(AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = true)] public class MyCustomAttribute : Attribute 更新:好吧,我可能一直在问错误的问题。 从自定义属性类中,如何获取应用了我的自定义属性的成员(或包含成员的类)? Aaronaughtbuild议不要在堆栈中find应用了我的属性的类成员,但是如何从我的属性的构造函数中获取这些信息呢?

你如何find一个接口的所有实现?

假设你有一个在C#中定义的接口。 find提供接口实现的所有类的最简单的方法是什么? 暴力方法将使用Visual Studio中的“查找引用”,并手动查看结果以将用法从实现中分离出来,但对于大量引用相对较less的实现的大型代码库中的接口,耗时且容易出错。 在Java中,在代码库上运行javadoc(使用-private选项来包含私有类)将为接口生成一个文档页面(比如Comparable ),该页面包括接口的所有实现类以及任何子接口(尽pipe它不包括子接口的实现类,通过深入到列出的子接口,这些相对容易确定)。 这是我正在寻找的function,但与C#和Visual Studio。

C#获取null对象的types

我有C#方法 private static string TypeNameLower(object o) { return o.GetType().Name.ToLower(); } 给我input对象的小写types名称。 但是,如果input是一个string设置为null或可空的int设置为null,那么这个方法当然失败。 在这种情况下如何获得types名称?

使用MediaElement从Stream播放video

是否有可能使用WPF MediaElement从System.IO.Stream对象播放streamvideo? 正在从存储媒体文件的WCF服务中检索Stream对象。

从PHP调用C / C ++库函数

我们有一个运行在客户机器上的PHP web应用程序。 对于更新,我们在C中有一些代码,我们希望将其作为本地不透明库与PHP Web应用程序一起包含在内。 如何去调用一个C / C ++库。 函数从PHP? 不能认为由Web服务器调用的PHP应用程序具有任何types的权限来调用exec(),eval()或system()types的函数来执行C封装器驱动程序,该C封装器驱动程序又使用C / C ++库,因此需要从PHP代码中直接使用C库。

这些关于指针的陈述有相同的效果吗?

做这个… char* myString = "hello"; …有同样的效果吗? char actualString[] = "hello"; char* myString = actualString;

为每个可变参数和一个数组调用一个函数

所以我有一些typesX : typedef … X; 和一个模板函数f : class <typename T> void f(X& x_out, const T& arg_in); 然后一个函数g : void g(const X* x_array, size_t x_array_size); 我需要写一个variadic模板函数h来做到这一点: template<typename… Args> void h(Args… args) { constexpr size_t nargs = sizeof…(args); // get number of args X x_array[nargs]; // create X array of that size for (int i = 0; […]

为什么在C ++中包含“使用名称空间”到头文件是一个坏主意?

在阅读Bruce Eckel关于命名空间的“Thinking in C ++”时,我遇到了以下的说法: 然而,你几乎从不会在头文件中看到一个using指令(至less不在范围之外)。 原因是使用指令消除了对那个特定名字空间的保护,并且效果持续到当前编译单元结束。 如果你在一个头文件中放置一个using指令(在一个范围之外),这意味着这个“名字空间保护”的丢失将出现在任何包含这个头文件的文件中,这通常意味着其他的头文件。 请您帮助我用一些简单的例子来理解上述说法吗?