是否有关于如何优化的建议,并且在需要的情况下可以将其缩短:
io.on('connection', (socket) => {
var roomName
var firstPlayer
var secondPlayer
var connectedClients
socket.on('roomName', (obj) => {
roomName = obj.name
socket.join(roomName)
connectedClients = Object.keys(io.sockets.adapter.rooms[roomName].sockets)
if( connectedClients.length > 1 ){
firstPlayer = connectedClients[0]
secondPlayer = connectedClients[1]
// sending the icon decision
socket.to(firstPlayer).emit( 'iconDecide', { iAmX: true } )
socket.to(secondPlayer).emit( 'iconDecide', { iAmX: false } )
}
})
socket.on('move', (obj) => {
socket.to(roomName).emit('receiveMove', obj)
}) })
答案 0 :(得分:8)
这只是一行。使用string numeric formatting
TimerLabel.Text = $"{Hour:D2}:{Minute:D2}:{secound:D2}";
字母D(格式说明符)后跟数字值(精度说明符),指示格式代码提供足够的“ 0”字符以填充所需的空格
答案 1 :(得分:5)
TimerLabel.Text = $"{Hour:00}:{Minute:00}:{Second:00}");
答案 2 :(得分:0)
指定每个组件的numeric format应该就足够了:
TimerLabel.Text = $"{Hour:D2}:{Minute:D2}:{secound:D2}";
D2
=十进制输出,两个字符
答案 3 :(得分:0)
通常我们不想与Hour
,Minute
,second
分开工作(想像一下,执行一个非常复杂的操作会多么复杂)简单的操作,例如增加5
小时,59
分钟和47
秒),但是为此专门为此设置了TimeSpan
:>
TimeSpan period = new TimeSpan(Hour, Minute, second);
...
TimerLabel.Text = period.ToString();
如果Hour
,Minute
,second
表示时间,而不是期间使用DateTime
:< / p>
DateTime time = DateTime.Today.Add(new TimeSpan(Hour, Minute, second));
...
TimerLabel.Text = time.ToString("HH:mm:ss");