在Java世界中,我们使用Apache Commons的ToStringBuilder来帮助创建toString()实现.
有没有人知道C#的免费实现?有没有更好的替代品我不知道?
如果不存在任何自由实现,那么我想这个问题就变成了一个问题"在C#3中什么会成为一个好的ToStringBuilder?"
脱离我的头顶:
它可以提供反射和手动ToString字符串创建.
如果可以使用表达式树,真的很酷.
像这样的东西......
public override string ToString()
{
return new ToStringBuilder<Foo>(this)
.Append(t => t.Id)
.Append(t => t.Name)
.ToString();
}
Run Code Online (Sandbox Code Playgroud)
哪个会回归:
"Foo{Id: 1, Name: AName}"
Run Code Online (Sandbox Code Playgroud)
还有其他想法吗?
UPDATE
只是为了澄清ToStringBuilder是一个与StringBuilder不同的生物.我正在寻找类似于Apache Common的ToStringBuilder功能的东西,它具有多行格式化,不同样式和反射基础ToString创建等功能.谢谢.
更新2
我已经建立了自己的.看到这里.
我最近遇到了一些我正在研究的代码中的情况,这对我来说没有意义.一组类继承自基类,纯粹是为了在基类中共享一些方法.没有方法覆盖,只有子类从父类调用方法.
在我看来,通过让子类引用父类而不是继承它来更好地建模,我认为这会减少不必要的复杂性.这是合理的,还是我错过了使用这样的继承的一些好处?
我正在学习使用GLib编写简单,高效的套接字服务器的基础知识.我正在尝试使用GSocketService.到目前为止,我似乎只能接受连接,但随后他们立即关闭.从文档中我无法弄清楚我错过了哪一步.我希望有人可以为我揭开这一点.
运行以下内容时:
# telnet localhost 4000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
# telnet localhost 4000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
# telnet localhost 4000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
服务器输出:
# ./server
New Connection from 127.0.0.1:36962
New Connection from 127.0.0.1:36963
New Connection from 127.0.0.1:36965
Run Code Online (Sandbox Code Playgroud)
当前代码:
/*
* server.c
*
* Created on: Mar …Run Code Online (Sandbox Code Playgroud) 我有一个情况,我有一个Intptr,我有一个我自己的结构,由4个字节组成.我想从Intptr中读取4个字节到我的这个结构中.但我想分别填充结构中的4个字节.就像是
mystruct obj = new mystruct().
obj.byte2 ="从Myintptr
读取第一个字节" obj.byte1 ="从MyIntptr读取下一个字节"
这可能吗 ?
其中一种方法可能是我首先使用Marshal.copy()将整个事物读入字节数组,然后执行复制到obj的第二步.但我很好奇我有另一种方式
问题:
我想要代码:语法高亮(编程语言)
语言:C# 或汇编 x86(最好是 C#)
平台:Windows
资格:最有效的实现可能/最专业/像微软这样的大公司这样做的方式
改写:如何做我以目前已知的最有效的方式在 C# for Windows 中实现语法高亮?
详细说明(随意跳过 - 不需要回答问题 :)):
我不想要任何实现它的方式 - 我已经看过几个。
我想知道的是微软如何在 Visual Studio(无论哪个版本)上做得这么好。
当谈到语法高亮时,人们一直试图重新发明轮子。我不明白为什么。
这被认为是一个非常困难的问题吗?我见过只突出显示屏幕上当前显示内容的实现,我认为这是要走的路......(它使用了一些聪明的 API 来知道文本框的哪些行实际显示)。
我还看到了使用 RichTextBox 的实现,我认为这不是可行的方法(也许我在这里错了)-我认为将在常规文本框上绘制文本的例程子类化并更改其画笔可能会更好(也许我在某处看到过 - 我怀疑我自己会想到这一点)
另外我听说有些人用 AST 实现它就像编译器会被编码一样(我认为是词法分析器部分?) - 我希望那是矫枉过正 - 我认为这不是有效的。(没教养的猜测)
如果真的是一道难题,那么大部队怎么总能把它做好?例如,我从未听说过在 Visual Studio 中打破语法高亮的方法。
但是任何其他实现它的工具都做得很差,或者比大家伙更糟糕。
什么是官方的“这是最好的方法,任何其他方法效率都较低”的做法?
我真的没有任何证据表明微软的方式更好,但看到他们可能比其他任何人都更了解 Windows API,我猜想实现它的方式是最好的(我很想错 - 想象一下可以说我的语法高亮实现比 MS 更好!)
抱歉我的阐述不连贯。
另外,我提前为任何失礼道歉——这是我的第一个问题。
我正在尝试在网上阅读一些OpenGL教程.问题是我找到了一些旧的gluPerspective().gluPerspective在OpenGL 3.0中已弃用,在3.1中已删除.
我可以用什么功能代替?
我正在使用安装了最新FreeGlut的C++.
我在Matlab中训练了xor神经网络并得到了这些权重:
iw: [-2.162 2.1706; 2.1565 -2.1688]
lw: [-3.9174 -3.9183]
b{1} [2.001; 2.0033]
b{2} [3.8093]
Run Code Online (Sandbox Code Playgroud)
仅仅是出于好奇,我试图编写MATLAB代码来计算这个网络的输出(隐藏层中的2个神经元,输出中的1个,TANSIG激活函数).
我得到的代码:
l1w = [-2.162 2.1706; 2.1565 -2.1688];
l2w = [-3.9174 -3.9183];
b1w = [2.001 2.0033];
b2w = [3.8093];
input = [1, 0];
out1 = tansig (input(1)*l1w(1,1) + input(2)*l1w(1,2) + b1w(1));
out2 = tansig (input(1)*l1w(2,1) + input(2)*l1w(2,2) + b1w(2));
out3 = tansig (out1*l2w(1) + out2*l2w(2) + b2w(1))
Run Code Online (Sandbox Code Playgroud)
问题是当输入是[1,1]时,它输出-0.9989,当[0,1] 0.4902时.虽然模拟用MATLAB输出生成的网络是充分的,但是0.00055875和0.99943.
我做错了什么?
我需要导入如下所示的表格:
March Orders
***Empty Row
Week Order # Date Cust #
3.1 271356 3/3/10 010572
3.1 280353 3/5/10 022114
3.1 290822 3/5/10 010275
3.1 291436 3/2/10 010155
3.1 291627 3/5/10 011840
Run Code Online (Sandbox Code Playgroud)
列标题实际上是第3行.我可以使用Excel Sourch导入它们,但我不知道如何指定信息从第3行开始.
我用Google搜索了问题,但空洞了.
我有一个asp.net应用程序,我想在使用DPAPI加密系统时存储我将在应用程序中使用的机器加密密钥.
存储密钥的最佳实践是什么 - 我在哪里存储它?
谢谢.
c# ×5
java ×2
c ×1
c++ ×1
casting ×1
cryptography ×1
deprecated ×1
excel ×1
freeglut ×1
glib ×1
matlab ×1
oop ×1
opengl-3 ×1
performance ×1
reflection ×1
security ×1
ssis ×1
tostring ×1
unix ×1