Tag: C#的

在C#中生成HTML电子邮件正文

有没有更好的方式来生成HTML电子邮件在C#(通过System.Net.Mail发送),比使用Stringbuilder来执行以下操作: string userName = "John Doe"; StringBuilder mailBody = new StringBuilder(); mailBody.AppendFormat("<h1>Heading Here</h1>"); mailBody.AppendFormat("Dear {0}," userName); mailBody.AppendFormat("<br />"); mailBody.AppendFormat("<p>First part of the email body goes here</p>"); 等等等等?

为什么引用数组是非法的?

下面的代码不能编译。 int a = 1, b = 2, c = 3; int& arr[] = {a,b,c,8}; C ++标准对此有何评论? 我知道我可以声明一个包含引用的类,然后创build该类的数组,如下所示。 但我真的想知道为什么上面的代码不能编译。 struct cintref { cintref(const int & ref) : ref(ref) {} operator const int &() { return ref; } private: const int & ref; void operator=(const cintref &); }; int main() { int a=1,b=2,c=3; //typedef const int […]

通用TryParse

我想创build一个通用的扩展使用TryParse来检查一个string是否是给定的types: public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); } 这将不会编译,因为它不能解决符号'TryParse' 据我所知,“TryParse”不是任何接口的一部分。 这是可能做到的吗? 更新: 使用下面的答案我已经想出了: public static bool Is<T>(this string input) { try { TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input); } catch { return false; } return true; } 它工作得很好,但我认为以这种方式使用exception并不适合我。 UPDATE2: 修改为传递types而不是使用generics: public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return […]

在C代码中使用C ++库

我有一个C ++库,提供pipe理数据的各种类。 我有图书馆的源代码。 我想扩展C ++ API以支持C函数调用,以便该库可以与C代码和C ++代码同时使用。 我正在使用GNU工具链(gcc,glibc等),所以语言和体系结构的支持不是问题。 这在技术上是不可能的吗? 有什么需要注意的问题吗? 有关于此的资源,示例代码和/或文档吗? 我发现了一些其他的东西: 使用以下内容来包装需要由C代码使用的C ++头文件。 #ifdef __cplusplus extern "C" { #endif // // Code goes here … // #ifdef __cplusplus } // extern "C" #endif 将“真正的”C ++接口保存在不包含在C中的单独的头文件中。 使用#ifndef __cplusplus #error东西在这里帮助检测任何疯狂。 在C代码中谨慎使用C ++标识符作为名称 C和C ++编译器之间的枚举大小不一。 如果您使用GNU工具链,可能不是问题,但仍然要小心。 对于结构遵循以下forms,以便C不会感到困惑。 typedef struct X { … } X 然后使用指针传递C ++对象,它们只需要在C中声明为结构X,其中X是C ++对象。 […]

使用Gmail SMTP服务器“远程证书根据validation程序无效”

我得到这个错误: 根据validation程序,远程证书无效。 每当我尝试使用Gmail的SMTP服务器在我的C#代码发送电子邮件。 有人能指出我解决这个问题的正确方向吗? 以下是堆栈跟踪… at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) […]

为什么我不能inheritance静态类?

我有几个不需要任何状态的类。 从组织的angular度来看,我想把它们分层次。 但似乎我不能声明静态类的inheritance。 类似的东西: public static class Base { } public static class Inherited : Base { } 不pipe用。 为什么这个语言的devise者closures了这种可能性呢?

使string大写的第一个字母(具有最高性能)

我有一个TextBox的DetailsView ,我希望input的数据 总是保存在首字母大写。 例: "red" –> "Red" "red house" –> " Red house" 我怎样才能达到这个最大化的performance ? 注 : 根据答案和答案的评论,很多人认为这是要求将string中的所有单词大写。 Eg => Red House 它不是,但如果这是你所寻求的 ,找一个使用TitleInfo的ToTitleCase方法的答案。 (注意:对于实际问题,这些答案是不正确的。) 请参阅TextInfo.ToTitleCase doc以了解警告(不会触及全部大写的单词 – 它们被认为是缩略词;可能会在“不应该”降低的单词中间显示小写字母,例如“McDonald”=>“Mcdonald”;不保证处理所有针对文化的细微差别重新规则。) 注 : 关于第一个字母是否应该被强制为小写,这个问题是模棱两可的 。 接受的答案假设只有第一个字母应该改变 。 如果要强制除第一个string外的string中的所有字母都是小写字母 ,请查找包含ToLower 且不包含ToTitleCase的答案 。

限制asynchronous任务

我想运行一堆asynchronous任务,限制在任何给定时间有多less任务可能正在等待完成。 假设您有1000个url,并且您只希望一次打开50个请求; 但只要一个请求完成,您就可以打开到列表中下一个URL的连接。 那样的话,一次只能打开50个连接,直到URL列表被耗尽。 如果可能的话,我也想利用给定数量的线程。 我想出了一个扩展方法, ThrottleTasksAsync ,做我想要的。 那里有一个更简单的解决scheme吗? 我会假设这是一个常见的情况。 用法: class Program { static void Main(string[] args) { Enumerable.Range(1, 10).ThrottleTasksAsync(5, 2, async i => { Console.WriteLine(i); return i; }).Wait(); Console.WriteLine("Press a key to exit…"); Console.ReadKey(true); } } 这里是代码: static class IEnumerableExtensions { public static async Task<Result_T[]> ThrottleTasksAsync<Enumerable_T, Result_T>(this IEnumerable<Enumerable_T> enumerable, int maxConcurrentTasks, int maxDegreeOfParallelism, […]

来自C#客户端的多部分表单

我正在尝试从C#客户端(Outlook插件)填写一个PHP应用程序中的窗体。 我使用Fiddler从php应用程序中查看原始请求,并将表单作为多部分/表单传输。 不幸的是,.net不支持这种types的表单(WebClient只有一个上传文件的方法)。 有没有人知道一个图书馆或有一些代码来实现这一目标? 我想发布不同的值,另外(但只是有时)文件。 谢谢你的帮助,塞巴斯蒂安

C ++构造函数名称后面的冒号是做什么的?

这个冒号运算符(“:”)在这个构造函数中做什么? 它相当于MyClass(m_classID = -1, m_userdata = 0); ? class MyClass { public: MyClass() : m_classID(-1), m_userdata(0) { } int m_classID; void *m_userdata; };