参勤交代の行列は他家の領地を通過することになるが、通られる側の大名は使者を遣わして贈り物などを供し、場合によっては道の清掃・整備や渡し舟の貸出なども行なっていた。また通る方も遣わされた使者に対して返礼の品を送るなどしており、両者とも互いに気を遣い合っていた。他家との行列と鉢合わせにならないように各藩それぞれ入念な準備をしていたが、それでも鉢合わせる事態が発生した場合は各々の大名が籠から降り、相互に頭を下げて非礼を詫び合うこともあったという。民衆は自国以外の大名に対しても下馬の義務や道を譲る義務を課されていたが、自国と徳川御三家の行列以外には土下座する必要はなかった。西国の大名の多くは整備の進んだ東海道を通ったが、橋がなくしばしば川止めとなる大きな河川が複数あり、しばしば日程の変更および経費の増大に見舞われた。そのため、幕府の許可を得て、整備は進んでいないが川止めの可能性がない中山道に変更する大名もみられた。
自国の民衆に威厳を見せつけるために立派な服装を身に纏い、人を大量に雇った上で実際に必要な人数より多く見せることがよくみられた。これは城下町を離れるまで続けられ、町はずれに出ると雇われた人々の任務は完了となり、人数は約半数程度に減る。それ以外の従者たちは旅行に適した服装に着替え、宿泊予定のある宿場町を目指すこととなる。移動手段は陸路が殆どであるが、島津藩のように船と陸路を併用して行う場合もあった。陸路の場合、庶民は行列が進んでくると、道を譲らなけばならず、馬に乗っていた場合は必ず下馬しなければならなかった。また、自国の大名行列であれば土下座を行った。飛脚や出産の取上げに向かっている産婆を除いて、行列の前を横切ったり、列を乱したりする行為は特に無礼な行為とされ、当時の国内法である公事方御定書（71条追加条）によってその場で「切捨御免」も認められていた。このため、大声で行列の到来を知らせるために徳川御三家の場合は「下に、下に」と叫び、それ以外の諸藩は「片寄れー、片寄れー」、又は「よけろー、よけろー」という掛け声を用いて道を譲らせた。
軍役である以上、大名は保有兵力である配下の武士を随員として大量に引き連れただけでなく、道中に大名が暇を覚えたり、江戸での暮らしに不自由しないようにかかりつけの医師、茶の湯の家元や鷹匠までもが同行した上、大名専用の風呂釜などを含む多数の手回り品までも持ち運んだとされ、「大名行列」という大掛かりな行進が行なわれた。その人数は禄高によって大きく変わり、加賀百万石と称される加賀藩の場合で2500人から3000人、多いときで4000人に達したという。天保12年（1841年）に行なわれた紀州徳川家の参勤交代では、武士1639人、人足2337人、馬103頭を擁したという記録も残されており、御三家紀州侯の大名行列などは多くの農民が見物に訪れるほど格式と威光が感じられる大行列であったといわれている。移動時間ならびに移動速度は各大名によりまちまちであるが、自国城下町などを除き、費用節約のために急ぎ足での移動が行われることも多々見られた。一日平均で6〜9時間を掛けて約30〜40キロメートル (km) 移動したが、旅行程に遅れが生じた場合は移動距離が50 km近くに伸びることもあった。多くの大名が同時期に参勤交代をしたため、街道および宿場はしばしば混雑した。当初西国には出来るだけ長い海路で大坂まで旅をする大名が多かったが、天候による日程の遅延を避けるために、次第に陸路を増やす傾向があった。
参勤交代を行う大名は偶数年に江戸に来るグループと奇数年に来るグループに分けられた。隣国同士の大名は意図的に異なるグループに分けられたが、これは在国中あるいは江戸において談合などが出来ないようにしたものだと考えられる。各大名は4月、6月、8月、12月など国元を出発する月、および2月、8月など江戸を出発する月が定められていた。
型名の後ろに?を付けることで、Nullable<T>型の糖衣構文となる。また、値型であるにも関わらずnullを代入することができる。int? maybeNum = null;int correctlyNum = maybeNum ?? 0;上記構文は下記の糖衣構文である。Nullable<int> maybeNum = null;int correctlyNum = maybeNum.HasValue ? maybeNum.Value : 0;また、Null許容型では、一部を除いて各演算子が再定義される。// Null許容int型の演算子再定義int? x = null;int? y = 123;// nullを含む単項演算子、二項演算子 (NULL,NULL,NULL,NULL)Console.WriteLine((x + y)?.ToString() ?? "NULL");Console.WriteLine((x << y)?.ToString() ?? "NULL");Console.WriteLine((-x)?.ToString() ?? "NULL");Console.WriteLine((++x)?.ToString() ?? "NULL");// 片方がnullの場合の比較演算子(false,false,false,true)Console.WriteLine($"{x <= y},{x == y},{x >= y},{x != y}");// 双方がnullの場合の比較演算子(false,true,false,false)int? z = null;Console.WriteLine($"{x <= z},{x == z},{x >= z},{x != z}");// Null許容bool型の演算子再定義bool? b1 = null;bool? b2 = true;// nullを含む単項演算子、二項演算子 (NULL,NULL)Console.WriteLine((b1 & b2)?.ToString() ?? "NULL");Console.WriteLine((!b1)?.ToString() ?? "NULL");// ショートサーキットは再定義されない//Console.WriteLine((b1 && b2)?.ToString() ?? "NULL");// Null許容bool型のままでは条件式では使用できない//if (b1) { DoSomething(); }if (b1 ?? false) { DoSomething(); }if (b1 == true) { DoSomething(); }