Tag: 转换

什么是对象投射?

关于究竟什么是对象转换以及它用于什么,我有点困惑。 我已经阅读了有关Casting和类型转换的MSDN文档,在那里我可以看到,对于显式转换,您需要使用强制转换运算符。 我理解文档中给出的示例,如果在将一种类型转换为另一种类型时可能会丢失一些数据,则需要使用强制转换运算符。 我只是对你如何投射物体感到困惑? 我假设对象是一个类的实例,它可能包含比简单数据类型更多的信息? 那么你需要如何,为什么以及何时投射物体? 我已经看到了一个抛出一个对象的例子,它简单地说: SomeType name = (SomeType)obj; 我错过了什么,还是这个对象投射? 如果是,在什么情况下你需要像这样投射一个对象?

将参数传递给XSLT样式表

我正在尝试将一些参数传递给XSLT样式表。 我已经按照示例: 通过.NET将参数传递给XSLT样式表 。 但我的转换页面没有正确显示值。 这是我的C#代码。 我必须添加自定义函数来执行某些算术,因为Visual Studio 2010不使用XSLT 2.0。 var args = new XsltArgumentList(); args.AddExtensionObject(“urn:XslFunctionExtensions”, new XslFunctionExtensions()); args.AddParam(“processingId”, string.Empty, processingId); var myXPathDoc = new XPathDocument(claimDataStream); var xslCompiledTransformation = new XslCompiledTransform(true); // XSLT File xslCompiledTransformation.Load(xmlReader); // HTML File using (var xmlTextWriter = new XmlTextWriter(outputFile, null)) { xslCompiledTransformation.Transform(myXPathDoc, args, xmlTextWriter); } 这是我的XSLT: ..HTML.. 我错过了什么吗?

使用对象类型的字符串名称在c#中键入cast

我有以下代码,应该很容易通过 public class Foo { public void FooHasAMethod() { Console.WriteLine(“it is me, foo!!!”); } } public class Bar { public Foo FooProperty { get; set; } } public class FooBar { public static void Main() { Bar bar = new Bar{ FooProperty = new Foo() }; CallPropertyByName(bar, “Foo”); } public static void CallPropertyByName(Bar bar, string […]

如何在C#中将UIntPtr对象转换为IntPtr?

我需要在我的C#.NET 2.0应用程序中将UIntPtr对象转换为IntPtr对象。 如何实现这一目标? 我不认为它就像这样简单: UIntPtr _myUIntPtr = /* Some initializer value. */ object _myObject = (object)_myUIntPtr; IntPtr _myIntPtr = (IntPtr)_myObject;

在图形变换比例后缺少第一个像素列的一半

我注意到在OnPaint事件上的图形变换比例之后,不会绘制图像的第一个像素列的一半。 重现它所需的所有代码都在post的末尾。 基本上我已经创建了一个派生自PictureBox的类,名为PictureBox2,它会覆盖OnPaint方法来执行Scale转换。 它还将InterpolationMode更改为NearestNeighbor以防止Graphics更改像素外观。 PictureBox控件已添加到名为Form6_GraphicsTest的Form中。 控制在所有方面都是固定的。 PictureBox2背面颜色更改为蓝色,Form返回颜色为深灰色。 正如您在下面的图像中看到的那样,只绘制了图像第一个像素列的1/2。 为什么?? 我在这里遗漏了什么? 这是原始的10×10 8bpp图像: 编辑 – 解决方案对于一些奇怪的原因,PixelOffsetMode.Default吃了0.5像素。 解决方案:PixelOffsetMode.Half或HighQuality! 代码PictureBox2.cs using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; namespace GraphicsTest { public class PictureBox2 : PictureBox { public PointF Zoom = new PointF(20, 20); private InterpolationMode interpolationMode = InterpolationMode.NearestNeighbor; /// /// Paint the image /// /// The paint event protected […]

C#和VB.NET中的转换之间的区别

以下代码在C#中工作正常。 Int32 a, b; Int16 c; a = 0x7FFFFFFF; b = a & 0xFFFF; c = (Int16)b; 但是这个代码在VB.NET中出现了OverflowException。 Dim a, b As Int32 Dim c As Int16 a = &H7FFFFFFF b = a And &HFFFF c = CType(b, Int16) 两个代码片段对我来说都是一样的。 有什么区别,我怎样才能将C#代码转换为VB.NET?

在C#中从矩形数组中提取一维数组的最佳方法是什么?

假设我有一个矩形字符串数组 – 不是锯齿状数组 string[,] strings = new string[8, 3]; 从中提取一维数组(单行还是单列)的最佳方法是什么? 当然,我可以使用for循环执行此操作,但我希望.NET内置更优雅的方式。 用于将提取的字符串数组转换为对象数组的加值点。

检查控件类型

我可以在页面打印时显示页面的所有控件的ID以及它们的类型 myPhoneExtTxt Type:System.Web.UI.HtmlControls.HtmlInputText 这是基于此代码生成的 foreach (Control c in page) { if (c.ID != null) { controlList.Add(c.ID +” Type:”+ c.GetType()); } } 但是现在我需要检查它的类型并访问其中的文本,如果它的类型为HtmlInput,我不太清楚如何做到这一点。 喜欢 if(c.GetType() == (some htmlInput)) { some htmlInput.Text = “This should be the new text”; } 我怎么能这样做,我想你明白了吗?

矩阵/坐标转换顺序

我有两个要点: Point [] original; AND Point [] transformed; 这些变换后的数组只是应用了变换的原始副本。 例: matrix.Rotate(5f); matrix.Scale(.8f, 1.1f); matrix.Translate(30f, 18f); matrix.TransformPoints(transformed); 原点已知。 转换值已知。 应用变换的顺序是未知的。 如何计算/推断变换的顺序? 编辑 只有一轮转型。 一轮可以包含至多三个转换,如下所示。 应用的唯一转换是旋转,缩放和平移的任意组合。 为了给它一些现实世界的背景,考虑使用已知兴趣点的图像。 您打印图像,扫描并尝试再次阅读。 图像包含方向标记,允许我计算扫描过程中应用的变换。 现在,蛮力方法将是: 读取扫描图像。 计算扫描图像的旋转。 在扫描图像上应用旋转。 计算旋转图像的比例。 在旋转的图像上应用比例。 计算缩放图像上的平移。 在缩放图像上应用翻译。 您现在可以使用原始点从已处理图像中读取感兴趣的点,就像没有变换一样。 当然这种方法很昂贵。 500MB图像一次需要在内存中至少有两个副本,并且必须使用图形对象进行转换。 这个问题的前提是只读取一次图像,计算所有变换并将它们应用于坐标而不是图像本身。 使用变换后的坐标来读取兴趣点。 这就是“转换顺序”问题的来源。下面有一些非常有用的答案,我希望这可以清除背景。

Action 无法转换为EventHandler?

我正在连接一个事件以使用一个lambda,它需要在触发后自行移除。 我无法通过将lambda内联到+ =事件(没有用于删除事件的可访问变量)来做到这一点所以我设置了一个Action变量并将lambda移动到那里。 主要错误是它无法将Action转换为EventHandler。 我认为lambda表达式可以隐式转换为事件处理程序,为什么这不起作用?