C# Smtp mailer = new Smtp(); mailer.DeliveryNotification.NotifyCondition = DsnNotifyCondition.Always; VB.NET Dim mailer As New Smtp() mailer.DeliveryNotification.NotifyCondition = DsnNotifyCondition.Always
C# mailer.DeliveryNotification.ReturnPortion = DsnReturnPortion.Header; VB.NET mailer.DeliveryNotification.ReturnPortion = DsnReturnPortion.Header
C# mailer.DeliveryNotification.TrackingID = "UNQIUE_STRING_q8sdf74d"; VB.NET mailer.DeliveryNotification.TrackingID = "UNQIUE_STRING_q8sdf74d"
C#
if (mailer.GetExtension("DSN") != null)
{
Console.WriteLine("The message will be submitted with DSN support");
}
else
{
Console.WriteLine("The message will be submitted without DSN support");
}
VB.NET
If mailer.GetExtension("DSN") IsNot Nothing Then
Console.WriteLine("The message will be submitted with DSN support")
Else
Console.WriteLine("The message will be submitted without DSN support")
End IfC#
// Create new MailMessage object.
MailMessage msg = new MailMessage();
msg.LoadMessage(@"C:\Temp\MyMail.eml");
msg.ConfirmReceipt = "jdoe@domain.com";
VB.NET
' Create new MailMessage object.
Dim msg As New MailMessage()
msg.LoadMessage("C:\Temp\MyMail.eml")
msg.ConfirmReceipt = "jdoe@domain.com"C#
// Create new MailMessage object.
MailMessage msg = new MailMessage();
// Load the message from .eml file
msg.LoadMessage(@"C:\Temp\MyMail.eml");
// Show the e-mail address of recipient of the read confirmation message.
Console.WriteLine("Send confirmation to " + msg.ConfirmRead);
VB.NET
' Create new MailMessage object.
Dim msg As New MailMessage()
' Load the message from .eml file
msg.LoadMessage("C:\Temp\MyMail.eml")
' Show the e-mail address of recipient of the read confirmation message.
Console.WriteLine("Send confirmation to " + msg.ConfirmRead)
| C#: Smtp mailer = new Smtp(); mailer.AddAttachment(@"C:\My Documents\Report.xls"); |
| VB.NET: Dim mailer As New Smtp() mailer.AddAttachment("C:\My Documents\Report.xls") |
| C#: mailer.Message.Attachments.Add(@"C:\DataFiles\B4DVIS9H.TMP", "Annual report.doc"); |
| VB.NET: mailer.Message.Attachments.Add("C:\DataFiles\B4DVIS9H.TMP", "Annual report.doc") |
Java 9在9月21日正式发布,同时Oracle宣布将Java新版本的发布周期调整为每半年一次。目前,Java新版本的开发也已正式进入轨道。就已公开的消息来看,下一个版本的Java预计会在2018年3月发布,版本号将会是18.3,已经规划加入的特性包括JEP 286和296。
根据reddit站点上的讨论,首先更新的是JEP 296,Valhalla预计很快也会加入进来。OpenJDK的主页面则显示,已确定要在18.3版本实现的是JEP 286和296。
JEP 296主要是将JDK仓库群(JDK Repository Forest)合并为一个仓库,旨在降低管理大量仓库群的成本。根据InfoQ之前的报道,该仓库群的合并已经完成。这些软件仓库是在OpenJDK发展史上历次分裂生成的,在OpenJDK 9及以前的版本中将会继续存在。在这次合并操作之前,OpenJDK曾分裂为多个不同的Mercurial软件仓库群,这导致了许多问题,例如不能以原子方式对多个软件仓库应用漏洞修复(Bug Fixes)。在OpenJDK合并完成后,只会有一个软件仓库,并复制在三个开发线上。为了简化仓库的管理,JDK中还创建了用于在合并和未合并版本间移动更改的工具。
JEP 286提议在Java中引入局部变量的类型推断,该JEP在2016年提出,InfoQ曾经报道过该JEP的概况和相关的开发者调查结果。该JEP旨在减少编写Java代码相关的仪式性的内容,提升开发人员的体验,同时还要保证Java语言的静态性。它会减少开发人员在声明局部变量时,没有必要的变量类型声明。如果该JEP实现的话,在声明局部变量的时候,就可以采用类似如下的方式:
var list = new ArrayList(); // infers ArrayList var stream = list.stream(); // infers Stream
这种语句只能用于带有初始化器(initializer)的局部变量、增强的for-loop中的索引以及传统for-loop中声明的局部变量。它不能用于方法声明、构造函数声明、方法返回值、字段、catch语句以及其他类型的变量声明中。
关于局部变量的类型推断,不管是JVM体系中的语言还是其他语言都提供了一定形式的支持,比如C++(auto)、C#(var)、Scala(var/val)以及Go(通过:=进行声明)。至于该使用var作为关键字,还是使用let或类似于C/C++中的auto作为关键字,之前曾经有过一个面向开发者的调查。大约84%的回答表明定义可变内容的变量用关键字var是恰当的,只有百分之几的回答者建议使用auto更合适。根据Java语言架构师Brian Goetz介绍,该功能应该使用关键词var。
关于该特性的用法,在reddit上有一些讨论。有人表示,即便在支持“auto”语法的语言中,该特性使用的也比较少,因为有些人希望一眼就能看出变量的类型是什么。也有人认为,var有它的适用空间,在小的代码块中,直接用它实例化对象是可以的。如果是作为方法返回值的话,还是希望明确声明类型,Java的类型推断并不支持方法返回值,这一点倒不必担心。如果函数或代码块比较长的话,就不建议使用var了并要考虑适时进行代码的重写。时间和经验将会让我们更加明确应该在何时使用新功能,就像Optional刚出现时,也是耗费了一些时间才明确其推荐适用场景。
Valhalla项目中包含了一些有趣的JEP,包括值类型(Value Type)、针对原始类型实现泛型功能、增强的volatile等,外界很期待这些内容最终也能添加到新版本中。
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

试用、下载、了解更多产品信息请点击"咨询在线客服"
C# // Create a MailMessage object. MailMessage msg = new MailMessage(); // Add a header. msg.Headers.Add("MyHeader", "Some value for my own header", false); VB.NET ' Create a MailMessage object. Dim msg As New MailMessage() ' Add a header. msg.Headers.Add("MyHeader", "Some value for my own header", False)
C# // Remove the non-standard headers from the message. msg.Headers.RemoveCustomHeaders(); VB.NET ' Remove the non-standard headers from the message. msg.Headers.RemoveCustomHeaders()
C# // Remove the specified header. msg.Headers.Remove("X-Special-Header"); // Remove the first header. msg.Headers.RemoveAt(0); VB.NET ' Remove the specified header. msg.Headers.Remove("X-Special-Header") ' Remove the first header. msg.Headers.RemoveAt(0)








VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
VectorDraw Developer Framework点击下载>>>
| 版本 | 需求 |
7.7011.0.1 | 70001006 支持webgl渲染模式的webgl图像 |
| 70001016 支持webgl节剪辑 | |
| 70001019 支持使用scriptCommand hatch绘制阴影边框 | |
| 70001024 使用鼠标进行缩放 | |
| 70001029 实体选择回调 |
| 版本 | 需求 |
| 7.7011.0.1 | 70001015 具有相同名称的vdXproperties导出不正确 |
| 版本 | 需求 |
| 7.7011.0.1 | 70001009 DXF代理对象读取出错 |
| 70001020 某些DWF文件未正确打开 | |
| 70001025 DGN Xrefs的问题 | |
| 70001033 Layout paper未正确初始化 | |
| 7.7011.0.2 | 70001040 SPLines在DWG中未正确导出 |
| 版本 | 漏洞 |
| 7.7011.0.1 | 70001011 HANDLE类型的XProperty在DXF中未正确导出 |
| 版本 | 需求 |
| 7.7011.0.1 | 70001008 改进ClearEraseItems方法的速度 |
| 70001012 MergeSelection方法用于传递对象的GUIDs | |
| 70001027 虚拟机中的OpenGL问题 | |
| 70001034 能够设置UCS图标字母的颜色 | |
| 7.7011.0.2 | 70001036 外部引用对话框有一个支持路径按钮 |
| 版本 | 漏洞 |
| 7.7011.0.1 | 70001007 当文本具有斜角时,EditText和AddText命令不会正确显示光标 |
| 70001010 点上的多点折线未正确显示 | |
| 70001013 Inserts Inside Blocks层是处于ON状态时仍不可见 | |
| 70001014 图层组和滤镜在删除后仍会保存到DXF中 | |
| 70001017 图像在nonused Block中使用时会被删除 | |
| 70001018 线型折线显示不正确 | |
| 70001021 RenderToGraphics和RenderToDC会清除目标图形上下文的背景 | |
| 70001022 尺寸对象未正确导入PDF | |
| 70001026 在vdraw Idle中很少会随机出现exeption | |
| 70001030 Bhatch命令为创建的polyhatch添加白色作为fillcolor | |
| 70001031 用户选择部分文字的拉伸命令会出现错误 | |
| 70001032 vdMtext对象没有对齐 | |
| 7.7011.0.2 | 70001035 vdLayout DrawCCSAxis showOnOrigin参数无法正常工作 |
| 70001037 用户尝试打开特定文件后应用程序瘫痪 | |
| 70001038 图像不能从EMF正确导入 | |
| 70001039 Block名称不适用于DWG | |
| 70001042 具有Shape段的LineTypes不能在3d中与ExcludeFromList Draw3DFlag正常显示 |
| C#: SmtpServer smtp_srv = new SmtpServer(); smtp_srv.Name = "mail.domain.com"; oMailer.SmtpServers.Add(smtp_srv); |
| VB.NET: Dim smtp_srv As SmtpServer = New SmtpServer() smtp_srv.Name = "mail.domain.com" smtp_srv.AccountName = "john_doe" smtp_srv.Password = "secret" oMailer.SmtpServers.Add(smtp_srv) |
| C#: oMailer.SmtpServers.Add("127.0.0.1"); |
| VB.NET: oMailer.SmtpServers.Add("127.0.0.1") oMailer.SmtpServers.Add("smtp.company.com") |
| C#: oMailer.SmtpServers.Add("127.0.0.1", 33, 1); |
| VB.NET: oMailer.SmtpServers.Add("127.0.0.1", 33, 1) oMailer.SmtpServers.Add("smtp.company.com", 37, 2) |
| C#: oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password"); |
| VB.NET: oMailer.SmtpServers.Add("127.0.0.1", "dan_brown", "password") oMailer.SmtpServers.Add("smtp.company.com ", "john_doe", "secret") |
