我觉得我跳过了一两个C#课程,但这是我的困境:
我有一个抽象类,我从中派生出多个子类.
我确信,对于每个子类,我将有一个构造函数,它需要一个特定的静态对象作为模型,并且这个对象对于每个子类都是不同的.
我的第一种方法是在抽象父类中创建一个公共静态对象然后,在我开始创建子类的任何实例之前,我会为它们中的每一个修改它,但事实证明这样我实际上只做了一个静态对象,用于抽象类,每个子类都使用它.
我怎么能解决这个问题?
更确切地说,这是伪代码:
父抽象类:
abstract class AbstractClass
{
static public ModelObject Model;
...
}
Run Code Online (Sandbox Code Playgroud)
其中一个子课程:
class Child : AbstractClass
{
...
public Child()
{
this.someField = Model.someField;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
Model需要是"ModelObject"类的成员,它不应该是单例或其他任何东西.
EDIT2:
更确切地说,我选择了这种实施方案来进行国际象棋游戏:我有一个抽象类的棋子,而儿童类代表了游戏的具体部分:棋子,骑士等等.
抽象类继承自MeshMatObject,这是一个表示具有基本功能的通用3d对象的类,如旋转,网格,材质,纹理等,它定义了象棋游戏块的抽象方法,如GetPossibleMoves().
我上面讨论的Model对象是MeshMatObject的一个成员,在我看来,应该只在类外定义一次,然后用于所有的部分.我的意思是:例如,所有的棋子都有相同的网格和纹理,所以每次你想制作一个棋子时,我都没有看到将模型作为参数的意义.
当我尝试通过SSH从JAIL内部连接时,我收到此错误:
# ssh test@test.com
...
debug1: read_passphrase: can not open / dev / tty: No such file or directory
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
在JAIL everythng之外工作正常.有任何想法吗?
重现步骤:
# jls
JID IP Address Hostname Path
1 10.10.3.1 demo.example.com /jails/demo
# jexec 1 tcsh
(inside jail:)
# ssh test@test.com
Run Code Online (Sandbox Code Playgroud) 有没有人看到这段代码有什么问题:
MailMessage msg = new MailMessage();
msg.From = new MailAddress(WebConfigurationManager.AppSettings.Get("ReservationsFrom"));
msg.ReplyTo = new MailAddress(myRes.Email);
msg.To.Add(new MailAddress(WebConfigurationManager.AppSettings.Get("ReservationsTo")));
msg.CC.Add(new MailAddress(WebConfigurationManager.AppSettings.Get("ReservationsBcc")));
Run Code Online (Sandbox Code Playgroud)
尽我所能,我只能让“收件人”地址和“回复”工作,抄送和密件抄送永远不会收到邮件,即使我对地址进行了硬编码。
我在这里遗漏了一些明显的东西吗?
编辑:是的,我确信我从 web.config 中提取了正确的地址 - 就像我说的,即使我对静态地址进行了硬编码,BCC 和 CC 也从未收到过电子邮件。
我正在编写我的Servlet应用程序,并希望使用以下静态方法,它将乘以x和y.
public class Helper {
private Helper() {
throw new AssertError();
}
public static int mutltiply(int a, int b) {
int c = a*b;
return c;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道Servlets是多线程环境.从servlet调用这样的方法是否安全?
我应该为此功能添加同步属性吗?我的演唱会是关于多线程下c变量的值.
我是Java的新手,所以这些信息会非常有用.
丹尼.
最近我看到了这段代码
arrMove = new List<int[]>(4);
m_pppiCaseMoveDiagLine = new int[64][][];
m_pppiCaseMoveDiagonal = new int[64][][];
m_pppiCaseMoveLine = new int[64][][];
m_ppiCaseMoveKnight = new int[64][];
m_ppiCaseMoveKing = new int[64][];
m_ppiCaseWhitePawnCanAttackFrom = new int[64][];
m_ppiCaseBlackPawnCanAttackFrom = new int[64][];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用visual c#2010使我的代码看起来像这样,你知道任何自动执行此操作的快捷方式或工具吗?
编辑
我还有另一个相关的问题,如果我想对齐这样的声明
private PlayerColorE m_eNextMoveColor;
private int[] m_piPiecesCount;
private Random m_rnd;
private int m_iAttackedPieces;
Run Code Online (Sandbox Code Playgroud)
- 似乎无法使用电导率电动工具扩展 -
你知道怎么做吗?
非常感谢你的帮助!
多层和/或分布式应用程序,它们具有相同的含义吗?
当我们谈论这些应用程序中的层时,它是物理层(数据库,浏览器,Web服务器......)还是逻辑层(数据访问层,业务层......)?
我想知道我们是否可以不断调用某些服务来获取结果并显示在自动完成列表中.
我有一个带有文本框的屏幕,当用户开始在该文本框中输入时,自动完成应该填充数据.数据不会被硬编码,将通过http连接获取.我想我需要在Edittext的onTextChanged方法中调用http连接,但这是完美的解决方案.
此外,这种类型的实现应该在移动应用程序中完成.因为,这个功能是基于网络的.这可以在移动应用程序中完成吗?
这可行吗?
我创建了一个自定义对话框,我通过RelativeLayout动态地将视图放入其中.每次显示对话框时,它都会显示我的所有子视图,但它顶部有一些我无法解释的空间.我假设这是为对话框的"标题"保留(我不会有).有没有办法删除该空间并让我的自定义对话框只包装我正在放入的内容?
这是布局的xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/handlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我试过让相对布局成为父节点,结果相同.
这是自定义对话框的.java.
public class HandResults extends Dialog implements DialogInterface {
HandResults hr;
Timer myTimer;
RelativeLayout handrl;
// constructor sets the layout view to handresult layout
public HandResults(Context context) {
super(context);
setContentView(R.layout.handresults);
hr = this;
}
// create a timer to remove the dialog after 3 seconds
public void showHands(){
this.show();
myTimer = null;
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
hr.cancel();
}
}, …Run Code Online (Sandbox Code Playgroud) 好的这就是我想要做的
(defn addresses [person-id]
;addresses-retrival )
(defn person [id]
(merge {:addresses (addresses id)} {:name "john"}))
Run Code Online (Sandbox Code Playgroud)
在上面的人员功能中,我希望仅在需要时检索地址,就像我一样
(:addresses (person 10))
Run Code Online (Sandbox Code Playgroud)
而不是什么时候
(person 10)
Run Code Online (Sandbox Code Playgroud)
我不确定我是否正确这样做,对clojure不熟悉.
我在MemoryStream中有一个JSON字符串.我使用以下代码将其作为ASCII字符串输出:
MemoryStream memstream = new MemoryStream();
/* Write a JSON string to memstream here */
byte[] jsonBytes = new byte[memstream.Length];
memstream.Read(jsonBytes, 0, (int)memstream.Length);
string jsonString = Encoding.ASCII.GetString(jsonBytes);
Run Code Online (Sandbox Code Playgroud)
什么是更短/最短的方式?
c# ×4
android ×2
static ×2
.net-4.0 ×1
abstract ×1
asp.net ×1
autocomplete ×1
bytearray ×1
clojure ×1
dialog ×1
distributed ×1
dynamic ×1
email ×1
field ×1
freebsd ×1
inheritance ×1
jail ×1
java ×1
layer ×1
memorystream ×1
multi-tier ×1
servlets ×1
string ×1